System and method for controlling temperature of a liquid residing within a tank

ABSTRACT

A system for controlling a temperature of a liquid residing within a tank comprises a temperature sensor, a temperature control element, memory, and logic. The temperature sensor is configured to detect the temperature of the liquid residing within the tank, and the temperature control element is coupled to the tank. The memory stores data indicative of a usage history of the tank, and the logic is configured to automatically control the temperature control element based on the data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This document is a continuation of commonly assigned U.S. patentapplication Ser. No. 10/772,032, filed on Feb. 4, 2004, now U.S. Pat.No. 7,065,431, and entitled “System and Method for ControllingTemperature of a Liquid Residing within a Tank,” which is incorporatedherein by reference. U.S. patent application Ser. No. 10/772,032 is acontinuation of U.S. patent application Ser. No. 10/298,135, filed onNov. 15, 2002, now abandoned, and entitled “System and Method forControlling Temperature of a Liquid Residing within a Tank,” which isincorporated herein by reference. U.S. patent application Ser. No.10/298,135 claims priority to and the benefit of the filing date of thefollowing commonly assigned provisional applications: (a) U.S.Provisional Application No. 60/332,602, entitled “Water Heating Systemand Method,” and filed on Nov. 15, 2001; (b) U.S. ProvisionalApplication No. 60/353,546, entitled “System and Method for ControllingWater Temperature within a Water Tank,” and filed on Jan. 31, 2002; and(c) U.S. Provisional Application No. 60/417,926, entitled “System andMethod for Controlling Water Temperature within a Water Tank,” and filedon Oct. 11, 2002. All of the foregoing provisional patent applicationsare incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to liquid heating and coolingtechniques and, in particular, to a system and method for controllingtemperatures of liquids residing within tanks.

2. Related Art

Water tanks are often employed to provide users with heated water, whichis drawn from a water tank and usually dispensed from a faucet,showerhead, or like device. During operation, a water tank normallyreceives unheated water from a water source, such as a water pipe. Thewater tank includes a controller having a user interface that allows auser to set a desired temperature for the water being held by the tank.If the tank's water temperature falls below the desired temperature,then the controller activates a heating element for warming the tank'swater. When activated, the heating element begins to heat the waterwithin the tank, and the heating element continues to heat the wateruntil the water's temperature reaches or exceeds the desiredtemperature.

The water tank typically does not provide total thermal insulation, andheat from the water often dissipates through the tank and into thesurrounding environment. Therefore, over time, the temperature of thewater typically decreases. Furthermore, as water is drawn from the tankand used, unheated water from the water source is drawn into the tank toreplenish the tank's water supply. This new water is typically at alower temperature than the heated water within the tank causing theoverall temperature of the tank's water to rapidly decrease during timesof significant water usage. Due to the foregoing factors that tend toreduce the tank's water temperature, activation of the heating elementis frequently required to maintain the temperature of the water at orclose to the desired temperature. Moreover, activation of the heatingelement can be particularly frequent and/or long during times of highwater usage and for water tanks providing poor thermal insulation.

Activation of the heating element typically requires electrical power.In this regard, a heating element is normally comprised of one or moreresistive elements that emit heat when electrical current is passedthrough the heating element. As a result, the operational costsassociated with a water heater are directly related to the amount ofheat generated by the heating element. More specifically, any increasein the amount of heat generated by the heating element normallyincreases the energy costs and, therefore, the overall operational costsassociated with the water heater. Indeed, many consumers utilize atank's energy efficiency as a primary factor when purchasing a watertank. Thus, there exists a need in the art for more efficient watertanks that operate with lower energy costs.

Another problem with conventional water tanks pertains to failure of theheating element. For the reasons set forth above, a heating elementwithin a water tank may be frequently activated and deactivated in anattempt to maintain the tank's water temperature at the desired level.Over time, the frequent transitions of the heating element increase thewear experienced by the heating element, and the heating elementeventually fails. When the heating element fails, a user can eitherreplace the water tank entirely or fix the water tank by replacing thefailed heating element. However, during the time that it takes to fix orreplace the water tank, the water tank often fails to maintain the watertemperature at the desired level. In most situations, a user has noalternative source for heated water and, therefore, is not able to keepwater at the desired temperature until the water tank is either fixed orreplaced. This can be very inconvenient for the user, and the longerthat it takes to fix or replace the water tank, the more the user isinconvenienced.

Some water tanks referred to as “water coolers,” have cooling elementsinstead of heating elements in order to keep the water within the tanksat or below a desired temperature. Such tanks commonly hold drinkingwater that can be dispensed through a faucet, fountain, nozzle or othertype of water dispensing device. In order to keep the water within aparticular tank at or below the desired temperature, the cooling elementis activated when it is detected that the water temperature has risenabove the desired temperature. The cooling element cools the waterwithin the tank until the water temperature falls below the desiredtemperature. Like the heating element, electrical power is typicallyrequired to activate the cooling element. Thus, the operational costsassociated with a water cooler are directly related to the amount ofcooling performed by the cooling element. More specifically, anyincrease in the amount of cooling performed by the cooling elementnormally increases the energy costs and, therefore, the overalloperational costs associated with the water cooler.

SUMMARY OF THE INVENTION

The present invention overcomes the inadequacies and deficiencies of theprior art as discussed hereinbefore. Generally, the present inventionprovides a system and method for controlling a temperature of a liquidresiding within a tank.

A system in accordance with one embodiment of the present inventioncomprises a tank, a temperature sensor, a temperature control element,memory, and logic. The temperature sensor is configured to detect atemperature of a liquid residing within the tank, and the temperaturecontrol element is coupled to the tank. The memory stores dataindicative of a usage history of the tank, and the logic is configuredto automatically control the temperature control element based on thedata.

A system in accordance with another embodiment of the present inventioncomprises a temperature sensor, a temperature control element, a clock,and logic. The temperature sensor is configured to detect a temperatureof a liquid residing within a tank, and the temperature control elementis configured to alter the temperature of the liquid. The logic isconfigured to automatically select a temperature threshold based on atime value indicated by the clock and to perform a comparison betweenthe selected temperature threshold and the temperature detected by thetemperature sensor. The logic is further configured to control thetemperature control element based on the comparison.

A system in accordance with yet another embodiment of the presentinvention comprises a tank, a temperature sensor, a temperature controlelement, and logic. The temperature sensor is coupled to the tank, andthe temperature control element controls a temperature of a liquidresiding within the tank. The logic is configured to determine a valueindicative of an amount of the liquid drawn from the tank during a firsttime period and to establish a temperature threshold for a second timeperiod based on the value. The logic is also configured to perform acomparison between the temperature threshold and a temperature of theliquid detected by the temperature sensor during the second time period,and the logic is further configured to control the temperature controlelement based on the comparison.

Various features and advantages of the present invention will becomeapparent to one skilled in the art upon examination of the followingdetailed description, when read in conjunction with the accompanyingdrawings. It is intended that all such features and advantages beincluded herein within the scope of the present invention and protectedby the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention can be better understood with reference to the followingdrawings. The elements of the drawings are not necessarily to scalerelative to each other, emphasis instead being placed upon clearlyillustrating the principles of the invention. Furthermore, likereference numerals designate corresponding parts throughout the severalviews.

FIG. 1 is a block diagram illustrating a water heating system inaccordance with the prior art.

FIG. 2 is a block diagram illustrating a controller depicted in FIG. 1.

FIG. 3 is three-dimensional diagram illustrating a front view of thecontroller depicted in FIG. 2.

FIG. 4 is a three-dimensional diagram illustrating a back view of thecontroller depicted in FIG. 2.

FIG. 5 is a block diagram illustrating a liquid heating system inaccordance with an exemplary embodiment of the present invention.

FIG. 6A is block diagram illustrating circuitry depicted in FIG. 2, oncethe controller of FIG. 2 has been removed from the heating systemdepicted by FIG. 1.

FIG. 6B is a block diagram illustrating a more detailed view of acontroller depicted in FIG. 5.

FIG. 7 is a block diagram illustrating an instruction execution systemimplementing control logic depicted in FIG. 6.

FIG. 8 is three-dimensional diagram illustrating an exemplary front viewfor the controller depicted in FIG. 6.

FIG. 9 is a three-dimensional diagram illustrating an exemplary backview for the controller depicted in FIG. 6.

FIG. 10 is a flow chart illustrating an exemplary architecture andfunctionality of the controller depicted in FIG. 6.

FIG. 11 is a block diagram illustrating a liquid cooling system inaccordance with an exemplary embodiment of the present invention.

FIG. 12 is a block diagram illustrating a more detailed view of acontroller depicted in FIG. 11.

FIG. 13 is a block diagram illustrating an instruction execution systemimplementing control logic depicted in FIG. 12.

FIG. 14 is a flow chart illustrating an exemplary architecture andfunctionality of the controller depicted in FIG. 12.

FIGS. 15 and 16 depict a flow chart illustrating an exemplaryarchitecture and functionality of the controller depicted in FIG. 6 whenthe controller is operating in a learn mode in accordance with anexemplary embodiment of the present invention.

FIG. 17 depicts an exemplary usage history schedule that may be createdby the controller of FIG. 6 while operating in the learn mode.

FIGS. 18 and 19 depict a flow chart illustrating an exemplaryarchitecture and functionality of the controller depicted in FIG. 6 whenthe controller is operating in an operational mode in accordance with anexemplary embodiment of the present invention.

FIGS. 20 and 21 depict a flow chart illustrating an exemplaryarchitecture and functionality of the controller depicted in FIG. 12when the controller is operating in a learn mode in accordance with anexemplary embodiment of the present invention.

FIGS. 22 and 23 depict a flow chart illustrating an exemplaryarchitecture and functionality of the controller depicted in FIG. 12when the controller is operating in an operational mode in accordancewith an exemplary embodiment of the present invention.

FIG. 24 is a flow chart illustrating an exemplary architecture andfunctionality of the controller depicted in FIG. 6 when the controlleris operating in a learn mode and is determining time slotclassifications based on the rates of change of sensed watertemperature.

FIG. 25 is a flow chart illustrating an exemplary architecture andfunctionality of the controller depicted in FIG. 6 when the controlleris operating in an operational mode and is determining time slotclassifications based on the rates of change of sensed watertemperature.

FIG. 26 is a block diagram illustrating an exemplary embodiment of aheating element monitoring system that may be used to provide advancedwarning of an imminent failure of a heating element.

FIG. 27 is a block diagram illustrating an exemplary embodiment of acooling element monitoring system that may be used to provide advancedwarning of an imminent failure of a cooling element.

FIG. 28 is a flow chart illustrating an exemplary architecture andfunctionality of control logic, such as depicted in FIGS. 26 and 27.

FIG. 29 is a flow chart illustrating an exemplary architecture andfunctionality of control logic, such as depicted in FIG. 6, in settingan upper threshold and a lower threshold for use during a current timeslot.

FIG. 30 is a flow chart illustrating an exemplary architecture andfunctionality of control logic, such as depicted in FIG. 12, in settingan upper threshold and a lower threshold for use during a current timeslot.

FIG. 31 is a block diagram illustrating a conventional water heatingsystem employing multiple heating elements in accordance with the priorart.

FIG. 32 is a block diagram illustrating a liquid heating systememploying multiple heating elements in accordance with an exemplaryembodiment of the present invention.

FIG. 33 is a block diagram illustrating a more detailed view of acontroller depicted in FIG. 32.

FIG. 34 is a block diagram illustrating a liquid heating systememploying multiple heating elements in accordance with an exemplaryembodiment of the present invention.

FIG. 35 is a block diagram illustrating a more detailed view of acontroller and a control module depicted in FIG. 34.

FIG. 36 is a block diagram illustrating a liquid cooling systememploying multiple heating elements in accordance with an exemplaryembodiment of the present invention.

FIG. 37 is a block diagram illustrating a more detailed view of acontroller depicted in FIG. 36.

FIG. 38 is a flow chart illustrating an exemplary architecture andfunctionality of control logic, such as is depicted in FIGS. 36 and 37.

DETAILED DESCRIPTION

FIG. 1 depicts a conventional water heating system 15. The system 15includes a water tank 17 that receives and stores water from a waterpipe 21. If desired, the tank 17 may reside on a base or stand 23 thatsupports the tank 17, as shown by FIG. 1. A temperature control element,referred to as a “heating element 25,” within the tank 17 heats, underthe direction and control of a controller 28, the water within the tank17 to a desired temperature. The heated water within the tank 17 may bedrawn through a pipe 33 to one or more dispensing devices 36, such as afaucet, nozzle, or shower head, for example, which dispenses the heatedwater for use by a user. The dispensing device 36 normally includes avalve 38 for controlling water flow and, more particularly, forcontrolling whether or not the device 36 dispenses water from the pipe33. When the valve 38 is opened, water flows out of the dispensingdevice 36 and water from the tank 17 flows out of the tank 17 and intothe pipe 33. When the valve 38 is closed, no water is dispensed from thedispensing device 36. If no water is being dispensed by any dispensingdevice 36 within the system 15, then water does not typically flow outof the tank 17.

Each dispensing device 36 may receive unheated water from a watersource, such as water pipe 21, for example, and mix the unheated waterwith the heated water from the pipe 33 in order to dispense water at adesired temperature. Note that another valve 41 may be used to controlthe unheated water flow. Alternatively, there may be a single valve (notshown) for controlling the dispensing of both the unheated and heatedwater. It should be noted that the pipes 21 and 33 can be connected tothe tank 17 at locations other than those shown by FIG. 1.

A more detailed view of the controller 28 is shown in FIG. 2. Thecontroller 28 Includes a pair of input connections 37 for receivingelectrical power from an electrical power source 39. Furthermore, a userinterface 41 enables a user to provide an input for setting a desiredtemperature for the water within the tank 17. This desired temperature,which may be set by the user, will be referred to hereafter as a“temperature threshold.”

A temperature-based switch 44 detects whether the tank's watertemperature is above or below the temperature threshold, and activatesthe heating element 25 when the switch 44 detects the water temperatureto be below the temperature threshold. Typically, the switch 44activates the heating element 25 by enabling current to flow from theconnections 37 and through the heating element 25. By having currentflow through the resistance of the heating element 25, heat is generatedand transferred to the water within the tank 17 causing the temperatureof the water to increase.

Once the water temperature reaches or exceeds the temperature threshold,the switch 44 deactivates the heating element 25. Deactivation of theheating element 25 is typically achieved by preventing current fromflowing from the connections 37 to the heating element 25.

A common configuration of the switch 44 includes two conductive contacts(not shown) having dissimilar thermal properties. Each of the contactsis coupled to one of the connections 37 and to the heating element 25.Heat from the water within the tank 17 passes from the water through thetank 17 and to the contacts. As the water temperature changes, thermalstresses within the contacts tend to cause one of the contacts to movewith respect to the other contact. The configuration of the contacts issuch that the two contacts are separated when the water temperature isbelow the temperature threshold. The amount of separation is such thatthe thermal stresses cause the contacts to engage when the watertemperature reaches the temperature threshold and to remain engaged ifthe water temperature exceeds the temperature threshold. Furthermore,when the temperature of the water falls back below the temperaturethreshold, the thermal stresses are insufficient for keeping thecontacts engaged, causing the contacts to separate.

When the two contacts are engaged with one another, current is able toflow over the two contacts and through the heating element 25. In otherwords, the switch 44 is in a closed state, and the heating element 25 isactivated. While the switch 44 is in the closed state, the heatingelement 25 generates heat. However, when the contacts separate, currentis prevented from flowing through the switch 44 and, therefore, throughheating element 25. In other words, the switch 44 is in an open state,and the heating element 25 is deactivated. While the switch 44 is in anopen state, the heating element 25 fails to generate heat.

FIGS. 3 and 4 show three-dimensional front and back views, respectively,of a typical controller 28. As shown by FIG. 4, the controller 28includes a thermally conductive base 51, which can be mounted on theside of the tank 17 (FIG. 1). Furthermore, the conductive base 51includes holes 53. To fixedly attach the base 51 to the tank 17, screws(not shown) can be passed through the holes 53 and into the tank 17.When the controller 28 is mounted on the tank 17, heat from the tank'swater can pass through the tank 17 and through the thermally conductivebase 51, which is thermally connected to the temperature-based, switch44 (FIG. 2). Thus, the switch 44 should be able to efficiently receiveheat from the water within the tank 17 and operate as described above.

The user interface 41 shown by FIG. 3 comprises a turnable dial 57. Eachposition of the dial 57 corresponds to a different temperature, and theuser establishes the temperature threshold by turning the dial 57 to theposition that corresponds to the desired water temperature. In thisregard, the dial 57 is mechanically coupled to at least one of theaforementioned contacts (not shown) within the switch 44. As the dial 57is turned to a new corresponding temperature, the position of one of thecontacts, with respect to the other contacts, is changed such that thetwo contacts engage one another as the temperature of the tank's waterreaches the new corresponding temperature. Moreover, turning the dial 57to a new corresponding temperature establishes the new correspondingtemperature as the temperature threshold until the dial 57 is laterturned to another corresponding temperature. Thus, a user can change thetemperature threshold utilized to control activation of the heatingelement 25 by turning the dial 57.

Heating System Configuration

FIG. 5 depicts a liquid heating system 100 that may be used to provide aheated liquid, such as water, for example, in accordance with thepresent invention. As can be seen by comparing FIG. 1 to FIG. 5, theliquid heating system 100 may be similar to or identical to conventionalwater heating system 15 except that the liquid heating system 100 of thepresent invention is controlled by a different controller 110. A moredetailed view of an exemplary embodiment of the controller 110 isdepicted in FIG. 6. Note that the liquid heating system 100 will bedescribed hereafter as a providing heated water to users of the system100. However, in other embodiments, the system 100 may be used toprovide other types of heated liquids.

As shown by FIG. 6, the controller 110 includes control logic 115configured to control the operation and functionality of the controller110. The control logic 115 can be implemented in software, hardware, ora combination thereof. In one exemplary embodiment, as illustrated byway of example in FIG. 7, the control logic 115, along with itsassociated methodology, is implemented in software and stored in memory121 of an instruction execution system 123, such a microprocessor, forexample.

Note that the control logic 115, when implemented in software, can bestored and transported on any computer-readable medium. In the contextof this document, a “computer-readable medium” can be any means that cancontain, store, communicate, propagate, or transport a program. Thecomputer readable-medium can be, for example but not limited to, anelectronic, magnetic, optical, electromagnetic, infrared, orsemiconductor system, apparatus, device, or propagation medium. Morespecific examples (a nonexhaustive list) of the computer-readable mediumwould include the following: an electrical connection having one or morewires, a portable computer diskette, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), an optical fiber, and a portable compact discread-only memory (CDROM). Note that the computer-readable medium couldeven be paper or another suitable medium upon which the program isprinted, as the program can be electronically captured, via for instanceoptical scanning of the paper or other medium, then compiled,interpreted or otherwise processed in a suitable manner if necessary,and then stored in a computer memory. As an example, the control logic115 may be magnetically stored and transported on a conventionalportable computer diskette.

The system 123 of FIG. 7 comprises one or more conventional processingelements 127, such as a central processing unit (CPU) or digital signalprocessor (DSP), that communicate to and drive the other elements withinthe system 123 via a local interface 131, which can include one or morebuses. Furthermore, the system 123 may include a clock 134 that may beutilized to track time and/or control the synchronization of datatransfers within the system 123. The system 123 may also include one ormore data interfaces 138, such as analog and/or digital ports, forexample, for enabling the system 123 to exchange data with the otherelements of the controller 110.

The control logic 115 preferably controls the operation of the heatingelement 25 based on the temperature of the water within the tank 17. Inthis regard, the controller 110 includes a user interface 145 thatenables a user to provide, to the controller 110, various inputs, suchas an input for setting the temperature threshold for the tank 17.During normal operation, the control logic 115 is configured to controlthe operation of the heating element 25 in an attempt to maintain thewater temperature within the tank 17 at or above the temperaturethreshold, which may change from time-to-time, as will be described inmore detail hereafter.

To achieve the foregoing functionality, the controller 110 utilizes atemperature sensor 152, such as a thermistor or thermocoupler, forexample, for sensing the current water temperature of the tank 17. Thetemperature sensor 152 transmits a value of the sensed temperature tothe control logic 115, which activates or deactivates the heatingelement 25 based on the sensed temperature value. More specifically, thecontrol logic 115 preferably activates the heating element 25 if thesensed temperature is below the temperature threshold, and the controllogic 115 may keep the heating element 25 in the activation state untilthe sensed temperature reaches or exceeds the temperature threshold.While the heating element 25 is activated, the heating element 25generates heat, which is transferred to the tank's water generallycausing the water temperature to rise.

Once the sensed temperature reaches or exceeds the temperaturethreshold, the control logic 115 deactivates the heating element 25 andkeeps the heating element 25 in the deactivation state until the sensedtemperature falls below the temperature threshold, at which point thecontrol logic 115 again activates the heating element 25. Thus, thecontroller 110 activates and deactivates the heating element 25, asappropriate, in an attempt to maintain the tank's water temperaturewithin a desired range based on the temperature threshold.

Note that in other embodiments, if desired, the control logic 115 mayactivate and deactivate the heating element 25 at slightly differenttemperature thresholds in order to provide hysteresis. For example, thecontrol logic 115 may activate the heating element 25 if the sensedtemperature falls below a lower temperature threshold, and the controllogic 115 may deactivate the heating element 25 if the sensedtemperature exceeds an upper temperature threshold (i.e., a thresholdthat is higher than the aforementioned lower threshold).

Various types of known heating devices may be utilized to implement theheating element 25, and various types of techniques may be employed toactivate and/or deactivate the heating element 25. In the preferredembodiment, the heating element 25 is a resistive device that generatesheat when electrical current is passed through its resistive components.The controller 110, therefore, includes a pair of connections 37 capableof receiving electrical power from a power source 39, such as a batteryor a wall plug, for example. The connections 37 are coupled to a switch156, which operates under the direction and control of the control logic115. In this regard, when the control logic 115 decides to activate theheating element 25, the control logic 115 transmits, to the switch 156,a control signal that causes the switch 156 to close thereby causingelectrical current to flow through the heating element 25. When thecontrol logic 115 decides to deactivate the heating element 25, thecontrol logic 115 transmits, to the switch 156, a control signal thatcauses the switch 156 to open thereby preventing electrical current fromflowing through the heating element 25.

Note that the electrical power received by the connections 37 may beutilized to power various controller components, such as user interface145, temperature sensor 152, and/or instruction execution system 123(FIG. 7), for example. To this end, the controller 110 may include oneor more power converters 159 for converting the power from connections37 to suitable forms or voltages for powering one or more othercomponents of the controller 110.

In one exemplary embodiment, the control logic 115 is configured tomonitor the operational history of the tank 17 and to change or selectthe temperature threshold, when appropriate, such that the operation ofthe tank 17 is more efficient. The operational history preferablyindicates a schedule of the water usage from tank 17. In this regard,the control logic 115 periodically stores information that is indicativeof the tank's water usage over time. In other words, the control logic115 stores information, including time data from the clock 134, thattracks the tank's water usage. The data stored by the control logic 115for tracking the water's usage, including the time data stored fromclock 134, will be referred to hereafter as “usage history 161.” Thisusage history 161 may be stored in the memory 121 (FIG. 7) of system 123and can be analyzed by the control logic 115 to determine time periodswhen water usage from the tank 17 is relatively high, relatively low,and/or average.

There may be various methodologies employed to analyze water usage. Inone exemplary embodiment, water usage is analyzed by monitoring thestate of the heating element 25. In this regard, since the control logic115 controls the state of the heating element 25 by controlling thestate of the switch 156, the control logic 115 should be aware of whenthe heating element 25 is activated and when the heating element 25 isdeactivated. The control logic 115 preferably tracks the state of theheating element 25 to determine operational patterns associated with theheating element 25.

For example, control logic 115 may determine recurring time periods whenthe heating element 25 is seldom in the activation state with respect toother time periods. Such recurring time periods should correspond toperiods of low water usage from the tank 17 since an increase in therate at which heating element 25 heats the tank's water is normallycaused by an increase in water usage. In this regard, high water usagecauses more unheated water to be drawn into the tank 17 from the pipe 21in order to replenish the heated water flowing out of the tank 17. Theintroduction of more unheated water generally decreases the overalltemperature of the water causing the heating element 25 to remain in theactivation state longer and/or more frequently in order to heat thewater to the desired temperature range. Thus, low usage of the heatingelement 25 is generally indicative of low water usage, and conversely,high usage of the heating element 25 is generally indicative of highwater usage.

The control logic 115 may utilize a variety of methodologies todetermine time periods when the heating element 25 is seldom in theactivation state. For example, the control logic 115 may determine, foreach hour (or some other time period), how long the heating element 25is activated and/or deactivated. Such information may be stored inmemory 121 as the usage history 161. The control logic 115 may thenanalyze the usage history 161 and determine that during certainrepetitive time periods, such as the early morning hours of each day orduring particular time periods of particular days, for example, theheating element 25 is rarely in the activation state. Such time periodsshould be time periods of low water usage and will be referred tohereafter as “energy savings time periods.”

After identifying the energy savings time periods, the control logic 115monitors the clock 134 to determine when the energy savings time periodsoccur. During such time periods, the control logic 115 reduces theamount of heating that would otherwise be performed by the heatingelement 25 in normal operation. For example, the control logic 115 mayautomatically turn off the heating element 25 by keeping the switch 156open during energy savings time periods. Alternatively, the controllogic 115 may lower the temperature threshold for activating the heatingelement 25 during energy savings time periods such that the amount ofheat generated by the heating element 25 during such time periods isreduced. At the end of such periods, the control logic 115 may resumenormal operation.

The foregoing functionality has the effect of allowing, during theenergy savings time periods, the overall temperature of the tank waterto decrease below the normal temperature threshold without activatingthe heating element 25. This helps to reduce the amount of heatingrequired during the energy savings time periods and, therefore, helps toreduce the energy costs during such time periods. Furthermore, based onthe usage history 161, it may be assumed that water usage is likely tobe low during the energy savings time periods. Therefore, it is notlikely that users will experience a significant decrease in performanceas a result of the reduction in water temperature during the energysavings time periods. Thus, the aforementioned energy cost savings,which can be substantial over the life of the tank 17, are achievedwithout a significant reduction in performance of the system 100.

It should be noted that other methodologies may be employed to identifythe energy savings time periods. For example, the user may input, viainput interface 145, data indicative of the energy savings time periods.In other words, the user may program when the control logic 115 isconfigured to allow the water temperature to fall below the temperaturethreshold utilized in normal operation without activating the heatingelement 25. In another example, the control logic 115 may receivereadings from a sensor (not shown) that measures or tracks the amount ofwater that either flows out of or into the tank 17. The control logic115 can then be configured to identify the time periods of low waterflow as the energy savings time periods. Note that, as described above,the time periods of low water flow or, in other words, low water usageshould correspond to the same time periods of low activation of theheating element 25. Thus, in either the embodiment, the same timeperiods should be identified as energy savings time periods. Note thatvarious other methodologies may be employed to identify times of lowwater usage and, therefore, to identify energy savings time periods.

In one exemplary embodiment, the control logic 115 is further configuredto predict when the heating element 25 is about to fail. The controllogic 115 is configured to then provide a warning to a user, via userinterface 145, for example. Thus, the user can take any desirable stepsfor proactively dealing with the predicted failure. For example, theuser can replace the heating element 25 or the tank 17 at a time that isconvenient to the user and prior to the failure, or the user may makepreparations for replacing the heating element 25 or the tank 17, suchas, for example, purchasing a new heating element 25 or tank 17 for whenthe heating element 25 does eventually fail. As a result, the user canminimize the consequences of a failing heating element 25 and, moreparticularly, can minimize the amount of time that the system 100 isincapable of delivering unheated water.

To predict when failure of the heating element 25 is imminent, thecontrol logic 115 preferably monitors the electrical current (I)provided to the heating element 25 and/or the voltage (V) applied to theheating element 25. In this regard, the resistance (R) of the heatingelement 25 typically increases significantly just prior to a failure ofthe heating element 25. Thus, by monitoring the voltage and/or thecurrent applied to the heating element 25, it is possible to determinewhether or not the resistance of the heating element 25 is increasing byutilizing the equation V=IR. When the control logic 115 determines thatthe resistance of the heating element 25 has increased to a level higherthan a predefined threshold or has significantly increased over time,the control logic 115 determines that a heating element failure isimminent and provides the user with a warning.

In one exemplary embodiment, the monitoring element 162 is utilized toenable monitoring of the heating element 25 for failure. In this regard,the monitoring element 162 preferably includes circuitry (e.g., avoltmeter) for determining a voltage value corresponding to the voltageapplied to the heating element 25, and the monitoring element 162preferably includes circuitry (e.g., an ammeter) for determining acurrent value corresponding to the current applied to the heatingelement 25. The control logic 115 then divides the voltage value by thecurrent value to determine the resistance of the heating element 25.

Note that if the voltage is regulated such that it is substantiallyconstant, then the logic 115 can be configured to predict when theheating element 25 is about to fail by determining when the currentvalue (I) falls below a predefined threshold or significantly decreasesover time. In such a case, a decrease in measured current corresponds toan increase in heating element resistance. Similarly, if the current isregulated such that it is substantially constant, then the logic 115 canbe configured to predict when the heating element 25 is about to fail bydetermining when the voltage value exceeds a predefined threshold orsignificantly increases over time. In such a case, an increase inmeasured voltage corresponds to an increase in resistance.

In order to communicate operational information, such as, for example, awarning about an imminent heating element failure, a current tanktemperature, the current temperature threshold, etc., the user interface145 may include various communication devices. For example, theinterface 145 may include speakers for generating audio tones (e.g.,beeps) or other types of messages and/or may include a display device,such as a liquid crystal display (LCD), for displaying visual messages.Note that the display device may produce textual or non-textualmessages. For example, a LCD may be utilized to display a textualmessage while one or more light emitting diodes (LEDs) may be utilizedto display a non-textual message. As an example, a single LED may beused to communicate whether or not a heating element failure isimminent.

The user interface 145 may also include a wireless communication devicefor transmitting wireless signals, such as infrared or radio frequency(RF) signals, for example. The wireless signals may be transmitted to aremote device 174 (FIG. 6) that interfaces the information from thewireless signals with a user. This remote device 174 may be mounted atany convenient location that is suitable for communicating with the userinterface 145. Alternatively, the remote device 174 may be a portabledevice, such as a Palm Pilot™, for example.

Furthermore, as previously set forth above, the user interface 145 ispreferably configured to allow a user to submit inputs, such as acommand for changing the temperature threshold or for identifying theenergy savings time periods, for example. Furthermore, when the controllogic 115 is implemented in software, the user interface 145 may enablethe downloading of code for changing or augmenting the code defining thecontrol logic 115. To enable the submission of such inputs, theinterface 145 may include any conventional input device, such as akeypad, a switch, and/or a dial, for example. The user interface 145 mayalso include a data port for receiving wireless (e.g., infrared, RF,etc.) or non-wireless data signals from the remote device 174.

Note that, in embodiments employing the remote device 174, the remotedevice 174 may be utilized to monitor and/or control a plurality oftanks 17. For example, large residential and, particularly, commercialbuildings often have a plurality of tanks 17 to provide users withsufficient warm water. A single remote device 174 may be utilized tomonitor and/or control multiple ones of the tanks 17. In thisembodiment, each tank 17 may be assigned a unique identifier, and theidentifiers may be included in the communications between remote device174 and the interfaces 145 of the multiple tanks 17.

For example, to transmit a command or other input to the controller 110of one of the tanks 17, the remote device 174 may transmit the commandor other input, along with the identifier of the one tank 17. Thecontrollers 110 of the tanks 17 may be configured to respond to commandsor inputs only if such commands or inputs are accompanied by theidentifier identifying its tank 17. Thus, only the controller 110 of theidentified tank 17 should respond to the transmitted command or input.Similarly, the controller 110, when transmitting an output, such as aheating element warning, may accompany such output with the identifierof its tank 17. Thus, based on the accompanying identifier, the remotedevice 174 or a user of the remote device 174 can determine which of thetanks 17 transmitted the output (e.g., the heating element warning).

Note that various techniques, in addition to or in lieu of thetechniques described above, may be employed to enable data to beexchanged with the controller 110. As an example, U.S. patentapplication entitled “System and Method for Wireless Data ExchangeBetween an Applicant and a Handheld Device,” filed on Oct. 23, 2001, byPatterson et al., Ser. No. 10/035,370, which is incorporated herein byreference, describes techniques that may be employed for enablinginfrared communication between two devices. Such techniques may beemployed to enable communication between the user interface 145 and theremote communication device 174, if desired.

In addition, referring to FIGS. 8 and 9, it is possible to configure thecontroller 110 to fit within the same or similar base 51 shown by FIGS.3 and 4. Thus, the controller 110 can be retrofitted to tanks 17 thatare currently controlled by conventional controllers, such as thecontroller 28 shown in FIGS. 3 and 4. In this regard, to retrofit a tank17 with the controller 110 of the present invention, a user can simplyremove the screws passing through the holes 53 of the base 51 mounted onthe tank 17. Then, after disconnecting the conventional controller fromits power source 39 and from the heating element 25, the user can removethe controller 28 and its base 51 from the tank 17 leaving the heatingelement 25 and power source 39 with open connections 191 and 193respectively extending from the heating element 25 and power source 39,as shown by FIG. 6A. The user can then mount the controller 110 and itsbase 51 to the tank 17 and insert the screws or other attachingmechanisms through the holes 53 and into the tank 17 fixedly attachingthe controller 110 to the tank 17 in place of the conventionalcontroller 28. Then, to ensure that the controller 110 may begincontrolling the tank 17, the user can ensure that the switch 156 isconductively coupled to the connections 191 and 193, as shown by FIG.6B. At this point, the newly installed controller 110 should be able tocontrol the operation of the tank 17 according to the techniquesdescribed herein. Note that, according to the retrofitting techniquesdescribed above, re-wiring of circuitry or wires outside of thecontrollers 28 and 110 is not necessary

It should be noted that the controller 110 shown by FIG. 8 includes adial 57, similar to conventional controller 28, for enabling a user toset the temperature threshold. However, as previously set forth above,other types of input devices may be utilized in other embodiments toenable the user to submit such an input.

Heating System Operation

An exemplary use and operation of the liquid heating system 100 andassociated methodology are described hereafter with particular referenceto FIG. 10.

In block 201 of FIG. 10, a user initially sets the temperature thresholdfor the tank 17 by providing an input via user interface 145. Atemperature reading is then taken via temperature sensor 152, asdepicted by block 204. The new temperature reading is analyzed by thecontrol logic 115 in block 207 to determine whether or not it is lessthan the temperature threshold set in block 201. If the new temperaturereading is less than the temperature threshold, then the control logic115 ensures that the heating element 25 is activated and is, therefore,generating heat. However if the new temperature reading is not less thanthe temperature threshold, then the control logic 115 ensures that theheating element 25 is deactivated and is, therefore, not generatingheat.

To ensure that the heating element 25 is activated, the control logic115, in block 211, checks the state of the switch 156. If the switch 156is open, then the heating element 25 is presently deactivated or is, inother words, turned “off,” and the heating element 25 is, therefore, notgenerating heat. Thus, the control logic 115 activates the heatingelement 25 in block 215 by transmitting, to the switch 156, a controlsignal that causes the switch 156 to transition from an open state to aclosed state. As a result, current flows through the heating element 25causing the heating element 25 to emit heat and to warm the water withinthe tank 17.

After activating the heating element 25 in block 215, the control logic115 preferably updates the usage history 161 (FIG. 7), in block 217, inorder to indicate the change in the state of the heating element 25.More specifically, the control logic 115 preferably stores in memory 121data indicating the occurrence of block 215. This data preferablyindicates the time, as determined from clock 134, of such occurrence. Atthis point, the heating element 25 should be in the activated state or,in other words, should be turned on, as shown by block 221.

If the switch 156 is closed in block 211, then the heating element 25 ispresently activated or is, in other words, turned “on,” and the heatingelement 25 is, therefore, generating heat. In such a case, the controllogic 115 needs to take no further steps to ensure activation of theheating element 25. Moreover, the process proceeds directly to block 221skipping blocks 215 and 217.

After ensuring that the heating element 25 is activated, the controllogic 115 then determines the resistance of the heating element 25 inblock 224. This is preferably achieved by measuring the voltage andcurrent applied to the heating element 25 and by dividing the measuredvoltage by the measured current. In block 227, the control logic 115compares the resistance to a resistance threshold. The resistancethreshold is preferably set such that, if the heating element'sresistance exceeds the threshold, then failure of the heating element 25is imminent. This may be achieved by setting the resistance threshold ata level significantly higher than the resistance normally measured forthe heating element 25. As shown by block 229, if the heating element'sresistance exceeds the resistive threshold, then the control logic 115,via user interface 145, provides a warning message in order to notify auser of the impending heating element failure. If the heating element'sresistance falls below the resistance threshold, then the control logic115 skips block 229.

As set forth above, if the control logic 115 determines, in block 207,that the new temperature reading from the sensor 152 is not less thanthe temperature threshold set in block 201, then the control logic 115ensures that the heating element 25 is deactivated. To ensure that theheating element 25 is deactivated in the preferred embodiment, thecontrol logic 115, in block 236, checks the state of the switch 156. Ifthe switch 156 is closed, then the heating element 25 is presentlyactivated or is, in other words, turned “on,” and the heating element 25is, therefore, generating heat. Thus, the control logic 115 deactivatesthe heating element 25 in block 239 by transmitting, to the switch 156,a control signal that causes the switch 156 to transition from a closedstate to an open state. As a result, current is prevented from flowingthrough the heating element 25 causing the heating element 25 to refrainfrom warming the water within the tank 17.

After deactivating the heating element 25 in block 239, the controllogic 115 preferably updates the usage history 161 (FIG. 7) in block 242in order to indicate the change in the state of the heating element 25.More specifically, the control logic 115 preferably stores in memory 121data indicating the occurrence of block 239. This data preferablyindicates the time, as determined from clock 134, of such occurrence. Atthis point, the heating element 25 should be in the deactivated stateor, in other words, should be turned off, as shown by block 244.

If the switch 156 is open in block 236, then the heating element 25 ispresently deactivated or is, in other words, turned “off,” and theheating element 25 is, therefore, not generating heat. In such a case,the control logic 115 needs to take no further steps to ensuredeactivation of the heating element 25. Moreover, the process proceedsto directly to block 244 skipping blocks 239 and 242.

Note that the control logic 115 may maintain data indicative of thestate of the switch 156 in order to enable implementation of blocks 211and 236. For example, the control logic 115 may maintain a flag that isasserted when the switch 156 is activated and that is deasserted whenthe switch 156 is deactivated. In such an example, the control logic 115should assert the flag when performing block 215 and should deassert theflag when performing block 239. Moreover, the control logic 115 cananalyze such a flag to determine both the state of the heating element25 in block 211 and the state of the heating element 25 in block 236.

After controlling the state of the heating element 25, as describedabove, the control logic 115 preferably determines, in block 247,whether or not data should be provided to a user of the system 100. Forexample, it may be desirable to provide users with certain data (e.g.,the temperature sensed by the sensor 152) during the operation of thesystem 100 either automatically or upon request. If so, the controllogic 115 transmits such data in block 249 to the user interface 145,which interfaces the data with a user.

For example, a user may desire to view an operational history of thesystem 100. In such an example, the user may input, via user interface145, a request to retrieve the usage history 161 (FIG. 7). Such arequest may be input via an interface device (e.g., a keypad) withininterface 145, or such a request may be input via a remote device 174that wirelessly or non-wirelessly transmits the request to the interface145 of the controller 110. The control logic 115 preferably detects theuser's request and, in response, retrieves the usage history 161 frommemory 121. The control logic 115 then transmits the usage history 161to the user interface 145, which interfaces the usage history 161 withthe user in block 249. This may be achieved, for example, by outputtingthe data via an interface device (e.g., an LCD) within interface 145 orby wirelessly or non-wirelessly transmitting the data to a remote device174, which then outputs the data to a user.

By controlling the state of the heating element 25 according to theaforedescribed techniques, the controller 110 attempts to maintain thetemperature of the water within the tank 17 at or above the temperaturethreshold. However, it may be desirable to change the temperaturethreshold. The control logic 115 determines in block 252 whether or notthe temperature threshold is to be changed. If the temperature thresholdis to be changed, then the control logic 115 proceeds back to block 201and sets the temperature threshold to the appropriate level. If thetemperature threshold is not to be changed, then the control logic 115proceeds directly to block 204 without performing block 201.

As an example of a situation when the temperature threshold is to bechanged, a user may submit an input to increase or decrease thetemperature threshold. The control logic 115 preferably detects such aninput and, in response, proceeds to block 201 from block 252. In block201, the control logic 115 sets the temperature threshold to a new valuebased on the user's input.

In another example, the control logic 115 may be configured toautomatically change the temperature threshold based on the usagehistory 161 (FIG. 7) instead of a user's input. For example, the controllogic 115 may analyze the usage history 161 and determine that during aparticular repetitive time period (e.g., during early morning hours ofevery day), the usage of water from the tank 17 is usually low ascompared to other time periods. In such an example, the control logic115 identifies the particular repetitive time period as an energysavings period. Note that other energy savings periods may be identifiedbased on the usage history 161 and/or based upon user inputs. Also notethat the control logic 115 can determine when an energy savings periodis entered or exited by analyzing data from the clock 134.

Once an energy savings period is entered, the control logic 115determines, in block 252, that the temperature threshold should belowered. Thus, the control logic 115 proceeds to block 201 and sets(e.g., lowers) the temperature threshold to the appropriate level. Oncethe energy savings period is exited, the control logic 115 determines inblock 252 that the temperature threshold should be raised perhaps to theoriginal threshold previously set by the user. Thus, the control logic115 proceeds to block 201 and sets (e.g., raises) the temperaturethreshold to the appropriate level.

To illustrate the foregoing, assume that a user, in block 201, initiallysets the temperature threshold to a first threshold. Also assume thatrepetitive energy savings time periods (e.g., the first four hours ofevery day) is identified and that the control logic 115 is configured tolower the temperature threshold to a second threshold during theidentified energy savings time periods.

Initially, the temperature threshold is set to the first threshold, andthe control logic 115 continually controls the heating element 25 basedon comparisons of the temperature sensor readings to the first thresholdin block 207 until the energy time savings period is entered. However,the first time that block 252 is performed after entering into theenergy savings time period, the control logic 115 determines that thetemperature threshold should be lowered to the second threshold. Thus,the control logic 115 proceeds to block 201 and lowers the temperaturethreshold to the second temperature. The control logic 115 thencontinually controls the heating element 25 based on comparisons of thetemperature sensor readings to the second threshold until the energysavings time period expires. Once the energy timesaving period expires,the control logic 115, in performing block 252 for the first time afterexpiration of the energy time savings period, determines that thetemperature threshold should be raised back to the first threshold.Thus, the control logic 115 proceeds to block 201 and raises thetemperature threshold to the first threshold. The control logic 115 thencontinually controls the heating element 25 based on comparisons of thetemperature sensor readings to the first threshold in block 207 untilthe next energy time period is entered. The foregoing process iscontinually repeated provided that no other reasons for changing thetemperature threshold is detected in block 252.

Cooling System Configuration

Techniques similar to the ones described above for the liquid heatingsystem 100 may be utilized in an attempt to maintain the temperature ofwater within a tank 17 below, instead of above, a desired temperature.Moreover, FIG. 11 depicts a liquid cooling system 300 in accordance withthe present invention. The liquid cooling system 300 may be similar toor identical to the liquid heating system 100 previously describedexcept that the temperature control element within the liquid coolingsystem 300 is a cooling element 305, instead of a heating element 25,and except that a controller 310 is configured to keep the temperatureof the water within the tank 17 at or below, instead of at or above, atemperature threshold. Referring to FIG. 12, the controller 310 may besimilar to or identical to the controller 110 of FIG. 6 except that thecontroller 310 includes logic 315 for controlling activation anddeactivation of the cooling element 305 in accordance with techniquesthat will be described in more detail hereafter. Note that the liquidcooling system 300 will be described hereafter as a providing cooledwater to users of the system 300. However, in other embodiments, thesystem 300 may be used to provide other types of cooled liquids.

The control logic 315, like the control logic 115 of liquid heatingsystem 100, can be implemented in software, hardware, or a combinationthereof. As illustrated in FIG. 13, the control logic 315, along withits associated methodology, may be implemented in software and stored inmemory 321 of an instruction execution system 323. When implemented insoftware, the control logic 315 can be stored and transported on anycomputer-readable medium.

The system 323 of FIG. 13, like the system 123 of FIG. 7, may compriseone or more conventional processing elements 327, such as a centralprocessing unit (CPU), that communicate to and drive the other elementswithin the system 323 via a local interface 331, which can include oneor more buses. Furthermore, the system 323 may include a clock 334 thatmay be utilized to track time and/or control the synchronization of datatransfers within the system 323. The system 323 may also include one ormore data interfaces 338, such as analog and/or digital ports, forexample, for enabling the system 323 to exchange data with the otherelements of the controller 310.

The controller 310 may utilize techniques similar to those employed bycontroller 115 (FIG. 6) in order to control the operation of the coolingelement 305. In this regard, like the controller 110 (FIG. 6), thecontroller 310 preferably includes a user interface 145 that enables auser to provide, to the controller 310, various inputs, such as an inputfor setting the temperature threshold for the tank 17. During normaloperation, the control logic 315 is configured to control the operationof the cooling element 305 in an attempt to maintain the watertemperature within the tank 17 at or below the temperature threshold,which may change from time-to-time, as will be described in more detailhereafter.

To achieve the foregoing functionality, the temperature sensor 152senses the current water temperature of the tank 17 and transmits avalue of the sensed temperature to the control logic 315, whichactivates or deactivates the cooling element 305 based on the sensedtemperature value. More specifically, the control logic 315 preferablyactivates the cooling element 305 if the sensed temperature is above thetemperature threshold, and the control logic 315 may keep the coolingelement 305 in the activation state until the sensed temperature reachesor falls below the temperature threshold. While the cooling element 305is activated, the cooling element 305 cools the water within the tank17.

Once the sensed temperature reaches or falls below the temperaturethreshold, the control logic 315 deactivates the cooling element 305 andkeeps the cooling element 305 in the deactivation state until the sensedtemperature rises above the temperature threshold, at which point thecontrol logic 315 again activates the cooling element 305. Thus, thecontroller 310 activates and deactivates the cooling element 305, asappropriate, in an attempt to maintain the tank's water temperaturewithin a desired temperature range based on the threshold. Note that inother embodiments, if desired, the control logic 315 may activate anddeactivate the cooling element 305 at slightly different temperaturethresholds in order to provide hysteresis.

Various types of known cooling elements may be utilized to implement thecooling element 305, and various types of techniques may be employed toactivate and/or deactivate the cooling element 305. To controlactivation and deactivation of the cooling element 305, the controllogic 315 preferably controls the switch 156 similar to how the controllogic 115 controls the switch 156 for activating and deactivating theheating element 25. In this regard, when the cooling element 305 is tobe activated, the control logic 315 causes the switch 156 to close,thereby allowing electrical power to flow from the power source 39 tothe cooling element 305. When powered by the power source 39, thecooling element 305 cools the water within the tank 17. When the coolingelement 305 is to be deactivated, the control logic 315 causes theswitch 156 to open, thereby preventing electrical power from flowingfrom the power source 39 to the cooling element 305. When the coolingelement 305 fails to receive power from the power source 39, the coolingelement 305 fails to cool the water within the tank 17. Thus, bycontrolling the state of the switch 156, the control logic 315 controlswhether or not the cooling element 305 is activated or deactivated.

The control logic 315 preferably tracks the water usage of the tank viasimilar techniques utilized by the control logic 115 of liquid heatingsystem 100 and then adjusts the temperature threshold based on thetank's water usage over time. In this regard, the control logic 315preferably maintains a usage history 361 (FIG. 13), similar to the usagehistory 161 maintained by control logic 115. Note the tank's water usagemay be determined by monitoring the amount of water that enters or exitsthe tank 17 over time or by monitoring the state of the cooling element305 over time. As with the heating element 25, low usage of the coolingelement 305 is generally indicative of low water usage, and high usageof the cooling element 305 is generally indicative of high water usage.

Moreover, the control logic 315 is configured to analyze the usagehistory 361 to identify energy savings time periods or, in other words,time periods when the usage or activation of the cooling element 315 isusually low. Techniques utilized by the control logic 115 of heatingsystem 100 for identifying energy savings time periods may be utilizedby the control logic 315 of cooling system 300 to also identify energysavings time periods.

After identifying the energy savings time periods, the control logic 315monitors the clock 134 to determine when the energy savings time periodsoccur. During such time periods, the control logic 315 reduces theamount of cooling that would otherwise be performed by the coolingelement 305 in normal operation. For example, the control logic 315 mayautomatically turn off the cooling element 305 by keeping the switch 156open during energy savings time periods. Alternatively, the controllogic 315 may raise the temperature threshold for activating the coolingelement 305 during energy savings time periods such that the amount ofcooling performed by the cooling element 305 during such time periods isreduced. At the end of such periods, the control logic 315 may resumenormal operation.

The foregoing functionality has the effect of allowing, during theenergy savings time periods, the overall temperature of the tank waterto increase above the normal temperature threshold without activatingthe cooling element 305. This helps to reduce the amount of coolingrequired during the energy savings time periods and, therefore, helps toreduce the energy costs during such time periods. Furthermore, based onthe usage history 361, it may be assumed that water usage is likely tobe low during the energy savings time periods. Therefore, it is notlikely that users will experience a significant decrease in performanceas a result of the increase in water temperature during the energysavings time periods. Thus, the aforementioned energy cost savings,which can be substantial over the life of the tank 17, are achievedwithout a significant reduction in performance of the liquid coolingsystem 300. Moreover, the control logic 315 of the cooling system 300essentially performs the same techniques utilized by the control logic115 of the heating system 100 in order to reduce operational costsexcept that control logic 315 restricts the amount of cooling performedby cooling element 305 rather than restricting the amount of heatingperformed by heating element 25.

Note that the control logic 315 may be configured to monitor the currentand/or voltage provided from the power source 39 to the cooling element305 in order to predict when failure of the cooling element 305 isimminent. When the control logic 315 detects such an imminent failure,the control logic 315 may communicate a warning just as the controllogic 115 is configured to communicate a warning when it detects animminent failure of the heating element 25. Note that the sametechniques described above for communicating input and output with thecontroller 110 of the heating system 100 may be employed to communicateinput and output with the controller 310 of the cooling system 300.Furthermore, the controller 310 may be retrofitted to a tank 17 of aconventional cooling system in the same manner that the controller 310is described above as being retrofitted to a tank 17 of a heating system100.

Cooling System Operation

An exemplary operation of the cooling system 300 and associatedmethodology are described hereafter with particular reference to FIG.14.

In block 401 of FIG. 14, a user initially sets the temperature thresholdfor the tank 17 by providing an input via user interface 145. Atemperature reading is then taken via temperature sensor 152, asdepicted by block 404. The new temperature reading is analyzed by thecontrol logic 315 in block 407 to determine whether or not it is greaterthan the temperature threshold set in block 401. If the new temperaturereading is greater than the temperature threshold, then the controllogic 315 ensures that the cooling element 305 is activated and is,therefore, cooling the water within the tank 17. However if the newtemperature reading is not greater than the temperature threshold, thenthe control logic 315 ensures that the cooling element 305 isdeactivated and is, therefore, not cooling the water within the tank 17.

To ensure that the cooling element 305 is activated in the preferredembodiment, the control logic 315, in block 411, checks the state of theswitch 156. If the switch 156 is open, then the cooling element 305 ispresently deactivated or is, in other words, turned “off,” and thecooling element 305 is, therefore, not cooling the water with the tank17. Thus, the control logic 315 activates the cooling element 305 inblock 415 by transmitting, to the switch 156, a control signal thatcauses the switch 156 to transition from an open state to a closedstate. As a result, power is provided to the cooling element 305 causingthe cooling element 305 to cool the water within the tank 17.

After activating the cooling element 305 in block 415, the control logic315 preferably updates the usage history 361 (FIG. 13), in block 317, inorder to indicate the change in the state of the cooling element 305.More specifically, the control logic 315 preferably stores in memory 321data indicating the occurrence of block 415. This data preferablyindicates the time, as determined from clock 334, of such occurrence. Atthis point, the cooling element 305 should be in the activated state or,in other words, should be turned on, as shown by block 421.

If the switch 156 is closed in block 411, then the cooling element 305is presently activated or is, in other words, turned “on,” and thecooling element 305 is, therefore, cooling the water within the tank 17.In such a case, the control logic 315 needs to take no further steps toensure activation of the cooling element 305. Moreover, the processproceeds directly to block 421 skipping blocks 415 and 417.

After ensuring that the cooling element 305 is activated, the controllogic 315 then tests the cooling element 305 in block 424 to determinewhether or not failure of the cooling element 305 is imminent. As shownby blocks 427 and 429, if failure of the cooling element 305 isimminent, the control logic 315, via user interface 145, provides awarning message in order to notify a user of the impending coolingelement failure. If failure of the cooling element 305 is not imminent,then the control logic 315 skips block 429.

As set forth above, if the control logic 315 determines, in block 407,that the new temperature reading from the sensor 152 is not greater thanthe temperature threshold set in block 401, then the control logic 315ensures that the cooling element 305 is deactivated. To ensure that theheating element 25 is deactivated in the preferred embodiment, thecontrol logic 115, in block 436, checks the state of the switch 156. Ifthe switch 156 is closed, then the cooling element 305 is presentlyactivated or is, in other words, turned “on,” and the cooling element305 is, therefore, cooling the water within the tank 17. Thus, thecontrol logic 315 deactivates the cooling element 305 in block 439 bytransmitting, to the switch 156, a control signal that causes the switch156 to transition from a closed state to an open state. As a result, thecooling element 305 fails to receive power from the power source 39causing the cooling element 305 to refrain from cooling the water withinthe tank 17.

After deactivating the cooling element 305 in block 439, the controllogic 315 preferably updates the usage history 361 (FIG. 13) in block442 in order to indicate the change in the state of the cooling element305. More specifically, the control logic 315 preferably stores inmemory 321 data indicating the occurrence of block 439. This datapreferably indicates the time, as determined from clock 334, of suchoccurrence. At this point, the cooling element 305 should be in thedeactivated state or, in other words, should be turned off, as shown byblock 444.

If the switch 156 is open in block 436, then the cooling element 305 ispresently deactivated or is, in other words, turned “off,” and thecooling element 305 is, therefore, not cooling the water within the tank17. In such a case, the control logic 315 needs to take no further stepsto ensure deactivation of the cooling element 305. Moreover, the processproceeds to directly to block 444 skipping blocks 439 and 442.

Note that the control logic 315 may maintain data indicative of thestate of the switch 156 in order to enable implementation of blocks 411and 436. For example, the control logic 315 may maintain a flag that isasserted when the switch 156 is activated and is deasserted when theswitch 156 is deactivated. In such an example, the control logic 315should assert the flag when performing block 415 and should deassert theflag when performing block 439. Moreover, the control logic 315 cananalyze such a flag to determine both the state of the cooling element305 in block 411 and the state of the cooling element 305 in block 436.

After controlling the state of the cooling element 305, as describedabove, the control logic 315 preferably determines, in block 447,whether or not data should be provided to a user of the system 300. Forexample, it may be desirable to provide users with certain data (e.g.,the temperature sensed by the sensor 152) during the operation of thesystem 300 either automatically or upon request. If so, the controllogic 315 transmits such data in block 449 to the user interface 145,which interfaces the data with a user.

By controlling the state of the cooling element 305 according to theaforedescribed techniques, the controller 310 attempts to maintain thetemperature of the water within the tank 17 at or below the temperaturethreshold. However, it may be desirable to change the temperaturethreshold. The control logic 315 determines in block 452 whether or notthe temperature threshold is to be changed. If the temperature thresholdis to be changed, then the control logic 315 proceeds back to block 401and sets the temperature threshold to the appropriate level. If thetemperature threshold is not to be changed, then the control logic 315proceeds directly to block 404 without performing block 401.

As an example of a situation when the temperature threshold is to bechanged, a user may submit an input to increase or decrease thetemperature threshold. The control logic 315 preferably detects such aninput and, in response, proceeds to block 401 from block 452. In block401, the control logic 315 sets the temperature threshold to a new valuebased on the user's input.

In another example, the control logic 315 may be configured toautomatically change the temperature threshold based on the usagehistory 361 (FIG. 13) instead of a user's input. For example, thecontrol logic 315 may analyze the usage history 361 and determine thatduring a particular repetitive time period (e.g., during early morninghours of every day), the usage of water from the tank 17 is usually lowas compared to other time periods. In such an example, the control logic315 identifies the particular repetitive time period as an energysavings period. Note that other energy savings periods may be identifiedbased on the usage history 361 and/or based upon user inputs. Also notethat the control logic 315 can determine when an energy savings periodis entered or exited by analyzing data from the clock 334.

Once an energy savings period is entered, the control logic 315determines, in block 452, that the temperature threshold should beraised. Thus, the control logic 315 proceeds to block 401 and sets(e.g., raises) the temperature threshold to the appropriate level. Oncethe energy savings period is exited, the control logic 315 determines inblock 452 that the temperature threshold should be lowered perhaps tothe original threshold previously set by the user. Thus, the controllogic 315 proceeds to block 401 and sets (e.g., lowers) the temperaturethreshold to the appropriate level.

To illustrate the foregoing, assume that a user, in block 401, initiallysets the temperature threshold to a first threshold. Also assume thatrepetitive energy savings time periods (e.g., the first four hours ofevery day) is identified and that the control logic 315 is configured tolower the temperature threshold to a second threshold during theidentified energy savings time periods.

Initially, the temperature threshold is set to the first threshold, andthe control logic 315 continually controls the cooling element 305 basedon comparisons of the temperature sensor readings to the first thresholdin block 407 until the energy time savings period is entered. However,the first time that block 452 is performed after entering into theenergy savings time period, the control logic 315 determines that thetemperature threshold should be raised to the second threshold. Thus,the control logic 315 proceeds to block 401 and raises the temperaturethreshold to the second temperature. The control logic 315 thencontinually controls the cooling element 305 based on comparisons of thetemperature sensor readings to the second threshold until the energysavings time period expires. Once the energy timesaving period expires,the control logic 315, in performing block 452 for the first time afterexpiration of the energy time savings period, determines that thetemperature threshold should be lowered back to the first threshold.Thus, the control logic 315 proceeds to block 401 and lowers thetemperature threshold to the first threshold. The control logic 315 thencontinually controls the cooling element 305 based on comparisons of thetemperature sensor readings to the first threshold in block 407 untilthe next energy time period is entered. The foregoing process iscontinually repeated provided that no other reasons for changing thetemperature threshold is detected in block 452.

It should be noted that the methodologies described above forcontrolling the heating element 25 and the cooling element 305 may becombined in an effort to keep the temperature of the tank's water withina desired range having both an upper temperature threshold and a lowertemperature threshold. In such an embodiment, both the heating element25 and the cooling element 305 are positioned within the tank 17. If thetemperature of the water rises above the desired range, the coolingelement 305 can be activated in an effort to return the temperature ofthe water to the desired range. Furthermore, if the temperature of thewater falls below the desired range, the heating element 25 can beactivated in an effort to return the temperature of the water to thedesired range.

Learn Mode

In another exemplary embodiment of the present invention, the controller110 (FIG. 5) may be configured to monitor the water usage of the tank 17while operating in one mode of operation, referred to as the “learnmode,” and to automatically determine a usage pattern for the tank 17based on this monitoring. The controller 110 may be configured to thencontrol the operation of the heating element 25 based on the usagepattern determined by the controller 110. Exemplary techniques forcontrolling the operation of the heating element 25 in such anembodiment will described in more detail hereinbelow.

In this regard, the control logic 115 initially enters into a learn modeand, while operating in the learn mode, attempts to maintain the tank'swater temperature within a desired temperature range by activating theheating element 25 when the water temperature within the tank 17 fallsbelow a temperature threshold, which may be a default threshold or maybe defined by user inputs received from the user interface 145. Inaddition, while in the learn mode, the control logic 115 preferablyattempts to determine water usage patterns. In this regard, the controllogic 115 tracks the water usage of the tank 17 for a specified amountof time. For illustrative purposes, assume that the specified amount oftime that the control logic 115 remains in the learn mode tracking waterusage is one week. However, it should be noted that other time periodsare possible in other embodiments.

Moreover, for each day of the week, the control logic 115 preferablymonitors the state of the heating element 25 to determine when theheating element 25 is in an activation state, and the control logic 115defines the usage history 161 based on this monitoring. In an exemplaryembodiment, each day of the week is partitioned into various timeperiods (e.g., hours), also referred to herein as “time slots,” and dataindicative of the water usage for each time slot is stored in the usagehistory 161. Although other partition times are possible, assume thatthe control logic 115 is configured to partition each day into hours andto monitor the water usage of the tank 17 accordingly, as will bedescribed in more detail hereinbelow.

For reasons previously set forth hereinabove, the amount of heatgenerated by the heating element 25 during a particular hour generallyindicates the amount of water usage that occurs during the particularhour. In this regard, as described above, when water usage is low (i.e.,when only a small amount of heated water is drawn from the tank 17), asignificant amount of water already heated by the heating element 25remains in the tank 17, and the temperature of the water within the tank17 is not likely to rapidly decrease. Thus, the total activation time ofthe heating element 25 should be relatively low.

However, when water usage is high (i.e., when a large amount of heatedwater is drawn from the tank 17), a significant amount of water heatedby the heating element 25 is drawn from the tank 17 and replenished withunheated water from the pipe 21. Therefore, the temperature of the waterin the tank 17 tends to rapidly decrease causing the total activationtime of the heating element 25 to significantly lengthen.

Moreover, the control logic 115 for each hour of each day preferablystores, in the usage history 161, data indicative of a total activationtime for the heating element 25. By analyzing this data, the controllogic 115 can determine which hours during the week correspond to lowusage time periods and which hours correspond to high usage timeperiods. In particular, if the total activation time for a particularhour exceeds a predefined time threshold, then the particular hour isclassified as a high usage time period or in other words, is associatedwith a high usage pattern. Otherwise, the particular hour is classifiedas a low usage time period or, in other words, is associated with a lowusage pattern. As will be described in more detail hereafter, the usagehistory data may be utilized to control the temperature threshold orthresholds used to activate and deactivate the heating element 25 suchthat the system 100 operates in an efficient manner.

In this regard, after determining the usage history 161, the controllogic 115 preferably places the controller 110 into an operational modein which the control logic 115 adjusts or otherwise selects thetemperature threshold or thresholds for activating and/or deactivatingthe heating element 25 based on the usage history 161 gleaned from thelearn mode. As an example, the usage history 161 may define a week'susage schedule of the system 100. More specifically, as described above,the usage history 161 in such an embodiment may associate each hour of aweek with data indicative of whether the control logic 115 detected alow usage pattern or a high usage pattern during the same hour of theweek while in the learn mode. Each time the hour of the week repeats forsubsequent weeks, the control logic 115 utilizes, based on the hour'sassociated usage pattern, a particular water temperature threshold forcontrolling when the heating element 25 is activated. For example, ifthe associated usage pattern indicates low usage, the control logic 115preferably utilizes a low temperature threshold (e.g., 110 degreesFahrenheit). However, if the associated usage pattern indicates highusage, the control logic 115 preferably utilizes a higher temperaturethreshold (e.g., 140 degrees Fahrenheit).

Thus, the usage history schedule defined by the data 161 corresponds toa schedule of temperature thresholds that may be used to control theheating element 25. If desired, the control logic 110 may define such athreshold schedule and store data indicative of this schedule in theusage history 161. The logic 110 may then control the heating element 25based on either the usage schedule or the temperature thresholdschedule.

To better illustrate the foregoing, assume that between 7:00 a.m. and8:00 a.m. on a Wednesday during the learn mode, the control logic 115detects a high usage pattern based on the total activation time of theheating element 25 during this hour (i.e., the total activation timefalls below the time threshold). For each Wednesday thereafter between7:00 a.m. and 8:00 a.m. while the controller 110 is in the operationalmode, the control logic 115 preferably utilizes a high temperaturethreshold to control activation of the heating element 25. In thisregard, during the aforementioned hour of each Wednesday, the controllogic 115 preferably activates one the heating element 25 when the watertemperature measured by the temperature sensor 152 is less than the hightemperature threshold. Further, the control logic 115 may deactivate theheating element 25 when the measured water temperature exceeds the hightemperature threshold. Alternatively, in order to provide hysteresis,the control logic 115 may deactivate the heating element 25 when themeasured water temperatures exceeds a threshold that is slightly higherthan the aforementioned high temperature threshold.

However, if the control logic 115 instead detects a low usage patternduring the Wednesday of the learn mode between 7:00 a.m. and 8:00 a.m.(i.e., the total activation time of the heating element 25 exceeds thetime threshold), then the control logic 115 utilizes a low temperaturethreshold to control activation of the heating element 25 between 7:00a.m. and 8:00 a.m. on each Wednesday during the operational mode. Inthis regard, during the aforementioned hour of each Wednesday, thecontrol logic 115 preferably activates the heating element 25 when thewater temperature measured by the temperature sensor 152 is less thanthe low temperature threshold. Further, the control logic 115 maydeactivate the heating element 25 when the measured water temperatureexceeds the low temperature threshold. Alternatively, in order toprovide hysteresis, the control logic 115 may deactivate the heatingelement 25 when the measured water temperatures exceeds a threshold thatis slightly higher than the aforementioned low temperature threshold.

By implementing the foregoing techniques, a lower temperature thresholdfor activating the heating element 25 is utilized during time periodsthat correspond to low usage patterns, as indicated by the usage history161, and a higher temperature threshold for activating the heatingelement 25 is utilized during time periods that correspond to high usagepatterns, as indicated by the usage history 161. As a result, theoverall operational costs and, in particular, the energy costsassociated with the system 100 can be lowered without significantlyimpacting the system's performance thereby resulting in a system 100that is more efficient and less costly.

Note that the usage patterns indicated by the usage history 161 based onmeasurements taken during the learn mode may, for some time periods,represent a poor estimate of the actual usage pattern experienced duringthe operational mode. For example, during the learn mode, a significantamount of water usage may occur for a particular hour of the week (e.g.,Wednesday between 7:00 a.m. and 8:00 a.m.). Therefore, during theoperational mode, this same hour of the week may be treated as a highusage time period, and the high temperature threshold may be utilized tocontrol activation of the heating element 25.

However, the high water usage for this particular hour of the weekduring the learn mode may turn out to have been more of an anomaly thana regular occurrence. Thus, it is possible for low water usage toactually occur during the particular hour of the week for most weeksonce the operational mode is begun. Further, it is possible for theactual usage pattern of the tank 17 to change such that time periodsindicated as high usage become regular periods of low usage and viceversa.

The control logic 115 is preferably configured to continue monitoringthe water usage of the system 100 even after transitioning into theoperational mode. Moreover, if the control logic 115 detects that theactual usage for a particular hour of the week does not regularlycorrespond to the type of usage indicated by the usage history 161, thecontrol logic 115 may modify the usage history 161 such that the usagepattern for the particular hour of the week is changed. Thus, in theforegoing example, the control logic 115 may modify the usage history161 to change the usage pattern for the aforementioned hour of the week(e.g., Wednesday between 7:00 a.m. and 8:00 a.m.) from a high usage to alow usage. Thus, for the particular hour of the week for subsequentweeks, a low temperature threshold is preferably utilized to control theactivation of the heating element 25.

Note that, in an effort to prevent the control logic 115 from changingthe usage history 161 in response to an anomaly in the usage pattern,the control logic 115 may be configured to modify the usage history 161,as described above, only if the number of detected usagemisclassifications for a particular time period or time slot exceeds apredetermined threshold. A “usage misclassification” refers to aninstance where the actual usage pattern for a time period fails tocorrespond to the type of usage indicated for the time period by theusage history 161. Further, if a relatively large number of usagemisclassifications are defined by the usage history 161 (e.g., if thedetected number of usage misclassifications exceeds a threshold), thecontrol logic 115 may revert back into the learn mode in order to makeanother attempt to define the usage history 161 such that the usagehistory 161 is a more accurate estimate of the weekly usage pattern thatwill be encountered.

Note that it is possible for the learn mode to continue once theoperational mode begins (i.e., the learn mode and the operational modemay simultaneously occur), making reverting back into the learn modeunnecessary. Further, rather than characterizing a time period (e.g., anhour of the week) as a high usage period or a low usage period based ona single trial in the learn mode, multiple occurrences of the timeperiod may be monitored and the results may be averaged. For example, itis possible for the controller 110 to remain in the learn mode for amonth. The total activation time measured between 8:00 a.m. and 9:00a.m. for each Wednesday during this month may be averaged, and theaforementioned time period or time slot (i.e., Wednesday between 8:00a.m. and 9:00 p.m.) may be characterized based on the averaged totalactivation time.

It should also be noted that it is not necessary for there to only betwo monitored states of pattern usage. For example, rather than justmonitoring the operation of the system 100 for low or high water usagepatterns, it is possible to monitor the operation of the system 100 forthree (e.g., low, medium, or high) water usage patterns. Each suchcategory may be respectively characterized by higher total activationtimes. For example, an hour of the week in which the total activationtime of the heating element 25 is below a low time threshold may beassociated with a low usage pattern by the usage history 161.Furthermore, an hour of the week in which the total activation time ofthe heating element 25 is above the low time threshold but below a hightime threshold may be associated with a medium usage pattern, and anhour of the week in which the total activation time of the heatingelement 25 is above the high time threshold may be associated with ahigh usage pattern.

Further, the control logic 115 may be configured to utilize a differenttemperature threshold for controlling activation of the heating element25 for each of the aforementioned categories. For example, for an hourof the week associated with a low usage pattern, a low temperaturethreshold may be employed by the control logic 115 to control activationof the heating element 25, thereby maintaining the water temperature ina low temperature range. For an hour of the week associated with amedium usage pattern, a medium temperature threshold, which is higherthan the aforedescribed low temperature threshold, maybe employed by thecontrol logic 115 to control activation of the heating element 25,thereby maintaining the water temperature in a higher temperature range.For an hour of the week associated with a high usage pattern, a hightemperature threshold, which is higher than the aforedescribed mediumtemperature threshold, may be employed by the control logic 115 tocontrol activation of the heating element 25, thereby maintaining thewater temperature in yet a higher temperature range. The monitoredstates may be further increased to a number higher than three states, ifdesired.

In addition, during consecutive time periods associated with low usagepatterns by the usage history 161, the control logic 115, according tothe techniques described above, preferably controls the activation ofthe heating element 25 based on a low temperature threshold. Thus, thewater temperature of the tank 17 is maintained within a lowertemperature range as compared to other time periods that are associatedwith high usage patterns. Due to prolonged periods of maintaining thewater within the tank 17 within a lower temperature range, bacteria maybegin to develop in the water. To ensure that bacteria levels within thetank 17 remain within acceptable levels, the control logic 115 may beconfigured to ensure that the water within the tank 17 is raised to asufficient temperature for a sufficient amount of time to substantiallykill bacteria that may be growing within the tank 17. As an example, thecontrol logic 115, once a week, may be configured to utilize (regardlessof the usage pattern defined by the usage history 161) a hightemperature threshold (e.g., 150 degrees Fahrenheit) such that the waterwithin the tank 17 is maintained within a high temperature range for asufficient amount of time to ensure that enough bacteria is killed tokeep the bacteria within the tank 17 within acceptable levels.

In another example, the control logic 115 may detect how long thetemperature of the water remains below a predetermined temperaturethreshold. If the amount of time exceeds a predetermined time threshold,then the control logic 115 may activate the heating element 25 for asufficient amount of time to sufficiently heat the water for killingbacteria. Various other techniques for ensuring that bacteria growthremains within acceptable margins are possible.

An exemplary operation of the controller 110 according to the learn modeand operational mode described above will now be described in moredetail with reference to FIGS. 15-19. For illustrative purposes, assumethat the controller 110 partitions each day into hours, as describedabove, and assume that the controller 110 monitors and controls thestate of the heating element 25 on an hourly basis, as will be describedhereafter. Note that each partitioned hour will be generally be referredto as a time slot. However, it should be noted that time slots of otherdurations may be utilized in other embodiments.

In addition, to better illustrate hysteresis of temperature thresholds,assume that (for any given moment in time) two thresholds, a lowerthreshold and an upper threshold, are used to control the activation anddeactivation, respectively, of the heating element 25. The upperthreshold is preferably slightly higher (e.g., by 5 degrees Fahrenheit)relative to the lower threshold. As will be described in more detailhereafter, the upper and lower thresholds used for a particular timeslot during the operational mode are dependent on the usage patternassociated with the time slot by the usage history 161.

Initially, the control logic 115 enters into the learn mode and beginsmonitoring the water usage of the tank 17. In this regard, afterentering the learn mode, the control logic 115 may wait until thebeginning of the first time slot (e.g., wait for the top of the nexthour), as shown by block 502 of FIG. 15, before beginning the monitoringprocess. After beginning the monitoring process, the control logic 115sets or identifies an upper and lower threshold to be used forcontrolling the heating element 25 during the learn mode, as shown byblock 505. These thresholds may be default thresholds or may becontrolled by a user of the system 100. As an example, in block 505, thelower threshold may be set to 135 degrees Fahrenheit, and the upperthreshold may be set to 140 degrees Fahrenheit.

In block 508, the control logic 115 takes a temperature reading of thewater within the tank 17 via the temperature sensor 152 (FIG. 6). Asshown by block 511, the control logic 115 then determines whether thesensed temperature of the water is below the lower threshold. If not,the control logic 115 refrains from activating the heating element 25.Instead, the control logic 115 determines in block 515 whether thecurrent time slot has expired. In the present example, the current timeperiod expires at the top of the next hour.

For example, if a “yes” determination is made in block 502 at 8:00 a.m.,then the current time slot begins at 8:00 a.m. and expires at 9:00 a.m.Thus, in performing block 515 in such an example, the control logic 115may determine whether 9:00 a.m. has been reached. If 9:00 a.m. has notbeen reached and the current time period has, therefore, not expired,the control logic 115 takes another temperature reading in block 508 andcontinues monitoring for the current time slot. However, if the currenttime period has expired, the control logic 115 determines in block 518the total amount of time, if any, that the heating element 25 wasactivated during the expired time slot. Techniques for determining thistotal amount of time, referred to as the “total activation time,” willbe described in more detail. If the total activation time is less than apredetermined threshold, then the control logic 115 classifies theexpired time slot as a low water usage time slot, as shown by blocks 521and 524. However, if the total activation time is greater than thepredetermined threshold, the control logic 115 classifies the expiredtime slot as a high water usage time slot, as shown by blocks 521 and527.

After classifying the expired time slot, the control logic 115determines in block 535 whether all of the time slots for an entire weekhave been monitored and classified. If so, the control logic 115transitions to the operational mode, as shown by block 538, and thelearn mode ends. If not, the control logic 115 begins monitoring thenext time slot (e.g., the time slot beginning at 9:00 a.m. in theaforementioned example), as shown by block 541.

If the control logic 115 determines in block 511 that the temperaturejust sensed in block 508 is less than the lower threshold, the controllogic 115 activates the heating element 25 and begins tracking theactivation time of the heating element 25, as shown by blocks 545 and547 of FIG. 16. In block 552, the control logic 115 takes a newtemperature reading and then determines, in block 555, whether thetemperature sensed by this new reading is greater than the upperthreshold. If so, the control logic 115 stops tracking the activationtime and determines a value indicative of the amount of time thatelapsed between blocks 547 and 559 (i.e., indicative of the approximateamount of time that the heating element 25 was activated). As shown byblocks 559 and 561, the control logic 115 then stores the value in theusage history 161 and deactivates the heating element 25. The controllogic 115 also takes a new temperature reading in block 508 (FIG. 15)and continues monitoring the current time slot.

If the control logic 115 determines in block 555 that the temperaturesensed by the new temperature reading is less than the upper threshold,the control logic 115 refrains from deactivating the heating element 25.Instead, the control logic 115 determines whether the current time slothas expired, as shown by block 564. If the current time period has notexpired, the control logic 115 returns to block 552. However, if thecurrent time slot has expired, the control logic 115 stops tracking theactivation time and a value indicative of the amount of time thatelapsed between blocks 547 and 571 (i.e., indicative of the approximateamount of time that the heating element 25 was activated.). As shown byblocks 571 and 573, the control logic 115 then stores this value anddetermines the total activation time for the current time slot, whichhas now expired. The total activation time corresponds to a sum of allof the values stored during the expired time slot via blocks 559 and571. If the total activation time determined in block 573 is less than atime threshold, the control logic 115 classifies the expired time slotas a low water usage time slot, as shown by blocks 577 and 582.Otherwise, the control logic 115 classifies the expired time slot as ahigh water usage time slot, as shown by blocks 577 and 584.

After classifying the expired time slot, the control logic 115determines in block 588 whether all of the time slots for an entire weekhave been monitored and classified. If so, the control logic 115transitions to the operational mode, as shown by block 592, and thelearn mode ends. If not, the control logic 115 begins monitoring thenext time slot according to the same techniques described above, asshown by block 596.

Moreover, once the learn mode is complete, each time slot for an entireweek has preferably been classified, and the classifications of the timeslots are indicated by the data defining the usage history 161. As anexample, FIG. 17 depicts an exemplary table 599 that may be defined bythe usage history 161 once the control logic 115 has completed the learnmode. As shown by FIG. 17, each time slot may be classified as either ahigh water usage time slot or a low water usage time slot depending onthe total amount of water usage that occurred for corresponding timesduring the learn mode.

After entering the operational mode, the control logic 116, as shown byblock 602 of FIG. 18, may wait for the next time slot to begin beforeinitiating the monitoring and control process depicted by FIGS. 18 and19. Upon initiating this process, the control logic 115 sets an upperand lower threshold depending on the classification of the current timeslot, as indicated by the usage history 161. In this regard, if thecurrent time slot is a low water usage time slot, as indicated by theusage history 161, the control logic 115 preferably sets the upper andlower thresholds according to a low (as compared to thresholdsassociated with high water usage time slots) set of thresholds. As anexample, the control logic 115 may set the lower and upper thresholds toa first set of thresholds (e.g., 110 degrees Fahrenheit and 115 degreesFahrenheit, respectively) if the current time slot is a low water usagetime slot. However, if the current time slot is a high water usage timeslot, as indicated by the usage history 161, then the control logic 115preferably sets the lower and upper thresholds to a second set of higherthresholds (e.g., 145 degrees Fahrenheit and 150 degree Fahrenheit,respectively).

For example, assume that the operational mode begins on a Tuesday at10:00 a.m. As indicated by FIG. 17, such a time slot is classified aslow water usage. Therefore, the control logic 115, in block 604, setsthe upper and lower thresholds to the first set of lower thresholds(e.g., 110 degrees Fahrenheit and 115 degrees Fahrenheit, respectively)and uses the first set of lower thresholds to control the heatingelement 25, as will be described in more detail hereinbelow. In anotherexample, assume that the operational mode begins on a Tuesday at 8:00a.m. As indicated by FIG. 17, such a time slot is classified as highwater usage. Therefore, the control logic 115, in block 604, sets theupper and lower thresholds to the second set of higher thresholds (e.g.,145 degrees Fahrenheit and 150 degree Fahrenheit, respectively) and usesthe second set of higher thresholds to control the heating element 25,as will be described in more detail hereinbelow. Note that the upper andlower thresholds may be “set” by loading the thresholds into aparticular register, by modifying a pointer to point to the thresholds,or by implementing any other suitable technique for indicating thatthese thresholds are to be used for controlling the activation of theheating element 25 during the current time slot.

In block 608, the control logic 115 takes a new temperature reading viathe temperature sensor 152. If the temperature sensed in block 608exceeds the lower threshold set in block 604, then the control logic 115refrains from activating the heating element 25. Instead, the controllogic 115 determines whether the current time slot has expired, as shownby blocks 612 and 615. If the current time period has not expired, thecontrol logic 115 returns to block 608. However, if the current timeperiod has expired, the control logic 115 determines the totalactivation time for the expired time slot, as shown by block 619.Techniques for determining the total activation time will be describedin more detail hereafter. The total activation time refers to the totalamount of time that the heating element 25 was activated during thecurrent time slot. The control logic 115 then compares, in block 622,the total activation time to a time threshold, which is preferably thesame time threshold used in blocks 521 and 577 (FIGS. 15 and 16) of thelearn mode.

If the total activation time is less than the time threshold, then theexpired time slot experienced low water usage. Thus, the control logic115, in block 625, checks to determine whether the usage history 161indeed indicates that the expired time slot is associated with low waterusage. If so, then the usage history 161 has correctly predicted theexpected water usage for the expired time slot. Thus, the control logic115 begins monitoring the next time slot, as shown by block 631, andreturns to block 604 to set the upper and lower thresholds for the nexttime slot based on the usage history 161. However, if the usage history161 indicates that the expired time slot is associated with high waterusage, then the usage history 161 has incorrectly predicted the expectedwater usage for the expired time slot. In other words, the usage history161, based on the actual water usage experienced during the expired timeslot, has misclassified the time slot. In such a situation, the controllogic 115 preferably logs or otherwise indicates the misclassificationin block 634. If a sufficiently high number of misclassifications arelogged within a specified time period (i.e., if the frequency ofmisclassifications is high), then the control logic 115 may determine inblock 637 to revert back to the learn mode in an attempt to redefine theusage history 161 such that it better predicts the time slotclassifications. In response to such a determination, the control logic115 transitions from the operational mode to the learn mode and repeatsthe process depicted by FIGS. 15 and 16, as shown by block 642.

If a determination is made in block 622 that the total activation timeexceeds the time threshold, then the expired time slot experienced highwater usage. Thus, the control logic 115, in block 645, checks todetermine whether the usage history 161 indeed indicates that theexpired time slot is associated with high water usage. If so, then theusage history 161 has correctly predicted the expected water usage forthe expired time slot. Thus, the control logic 115 begins monitoring thenext time slot, as shown by block 631, and returns to block 604 to setthe upper and lower thresholds for the next time slot based on the usagehistory 161. However, if the usage history 161 indicates that theexpired time slot is associated with low water usage, then the usagehistory 161 has incorrectly predicted the expected water usage for theexpired time slot. In such a situation, the control logic preferablylogs or otherwise indicates the misclassification in block 634 and thendetermines whether to revert back to the learn mode in block 637according to the techniques described above.

If the control logic 115 determines in block 612 that the temperaturejust sensed in block 608 is less than the lower threshold, the controllogic 115 activates the heating element 25 and begins tracking theactivation time of the heating element 25, as shown by blocks 652 and655 of FIG. 19. In block 661, the control logic 115 takes a newtemperature reading and then determines, in block 665, whether thetemperature sensed by this new reading is greater than the upperthreshold. If so, the control logic 115 stops tracking the activationtime and determines a value indicative of the amount of time thatelapsed between blocks 665 and 668 (i.e., indicative of the approximateamount of time that the heating element 25 was activated). As shown byblocks 668 and 671, the control logic 115 then stores the value in theusage history 161 and deactivates the heating element 25. The controllogic 115 also takes a new temperature reading in block 608 (FIG. 18)and continues monitoring the current time slot.

If the control logic 115 determines in block 665 that the temperaturesensed by the new temperature reading is less than the upper threshold,the control logic 115 refrains from deactivating the heating element 25.Instead, the control logic 115 determines whether the current time slothas expired, as shown by block 675. If the current time period has notexpired, the control logic 115 returns to block 661. However, if thecurrent time slot has expired, the control logic 115 stops tracking theactivation time and determines a value indicative of the amount of timethat elapsed between blocks 655 and 682 (i.e., indicative of theapproximate amount of time that the heating element 25 was activated).As shown by blocks 682 and 684, the control logic 115 then stores thisvalue and determines the total activation time for the current timeslot, which has now expired. The total activation time corresponds to asum of all of the values stored during the expired time slot via blocks668 and 682. The control logic 115 then compares, in block 686, thetotal activation time to a time threshold, which is preferably the sametime threshold used in blocks 521 and 577 (FIGS. 15 and 16) of the learnmode.

If the total activation time is less than the time threshold, then theexpired time slot experienced low water usage. Thus, the control logic115, in block 688, checks to determine whether the usage history 161indeed indicates that the expired time slot is associated with low waterusage. If so, then the usage history 161 has correctly predicted theexpected water usage for the expired time slot. Thus, the control logic115 begins monitoring the next time slot, as shown by blocks 691 and693. Note that implementation of block 693 is preferably identical toblock 604 (FIG. 18).

However, if the usage history 161 indicates that the expired time slotis associated with high water usage, then the usage history 161 hasincorrectly predicted the expected water usage for the expired timeslot. In such a situation, the control logic 115 preferably logs orotherwise indicates the misclassification in block 695. If asufficiently high number of misclassifications are logged within aspecified time period (i.e., if the frequency of misclassifications ishigh), then the control logic 115 may determine in block 697 to revertback to the learn mode in an attempt to redefine the usage history 161such that it better predicts the time slot classifications. In responseto such a determination, the control logic 115 transitions from theoperational mode to the learn mode and repeats the process depicted byFIGS. 15 and 16, as shown by block 699.

If a determination is made in block 686 that the total activation timeexceeds the time threshold, then the expired time slot experienced highwater usage. Thus, the control logic 115, in block 701, checks todetermine whether the usage history 161 indeed indicates that theexpired time slot is associated with high water usage. If so, then theusage history 161 has correctly predicted the expected water usage forthe expired time slot. Thus, the control logic 115 begins monitoring thenext time slot, as shown by blocks 691 and 693, and returns to block661. However, if the usage history 161 indicates that the expired timeslot is associated with low water usage, then the usage history 161 hasincorrectly predicted the expected water usage for the expired timeslot. In such a situation, the control logic preferably logs orotherwise indicates the misclassification in block 695 and thendetermines whether to revert back to the learn mode in block 697.

It should be noted that the controller 310 for controlling thetemperature of water within a liquid cooling system 300, similar to thecontroller 110 described above, may be configured to operate in a learnmode and an operational mode. It should be apparent to one of ordinaryskill in the art, upon examining this disclosure, that a methodologysimilar to the one depicted by FIGS. 15, 16, 18, and 19 may be utilizedto implement such a cooling system 300. Indeed, FIGS. 20-23 depict anexemplary methodology that may be used by the controller 310 forcontrolling the activation and deactivation of a cooling element 305. Ascan be seen by comparing FIGS. 20-23 to FIGS. 15-19, the methodologydepicted by FIGS. 20-23 is substantially similar to the one depicted byFIGS. 15-19. However, in FIGS. 20-23, blocks 711-718 are respectivelyperformed in lieu of blocks 511, 547, 555, 561, 612, 652, 665, and 671.

It should be further noted that the categorizing of time slots may bebased on temperature values in lieu of or in addition to temperaturecontrol element activation times. In this regard, the temperature of thewater within the tank 17 tends to rapidly decrease during times of highwater usage for reasons previously set forth above. Thus, thetemperature values sensed by the temperature sensor 152 may be used todetect time periods of high water usage. More specifically, the controllogic 115 or 315 may be configured to classify a time period or timeslot as a high usage time slot if a rate of change of the temperaturessensed by the temperature sensor 152 during the time slot is relativelyhigh, and the control logic 115 or 315 may be configured to classify atime period or time slot as a low usage time slot if the rate of changeof the temperatures sensed by the temperature sensor 152 during the timeslot is relatively low.

FIGS. 24 and 25 depict an exemplary methodology that may be employed bythe control logic 115 to classify time slots based on sensed temperaturevalues. In this regard, as shown by blocks 703 and 704 of FIG. 24, thecontrol logic 115 sets an upper temperature threshold and a lowertemperature threshold after beginning the learn mode. Then, the controllogic 115 takes and stores a new temperature reading, as shown by blocks705 and 706, based on the data provided by the temperature sensor 152.If the new reading is below the lower temperature threshold set in block703, then the control logic 115 activates the heating element 25, asshown by blocks 707 and 708. However, if the new reading is higher thanthe upper threshold set in block 703, the control logic 115 deactivatesthe heating element 25, as shown by blocks 709 and 710. As shown byblock 711, the control logic 115 continues implementing blocks 705-710until the current time slot expires.

Once the time slot expires, the control logic 115 preferably determines,based on the temperature readings stored in block 706, varies rates ofchange of the temperatures sensed by the temperature sensor 152 duringthe expired time period, as shown by block 712. As an example, thecontrol logic 115 may determine the rate of temperature change (ΔT) forsome fixed interval (e.g., every x minutes during the expired time slot,where x is any real number between 0 and 60 but preferably between 0 anda number significantly smaller than 60, such as 10, for example). Eachsuch rate of temperature change may then be compared to a threshold todetermine whether the expired time slot should be characterized as ahigh usage time slot or a low usage time slot. In particular, if any ofthe rates of change exceeds the threshold, then the control logic 115may classify the expired time slot as a high usage time slot, as shownby blocks 713 and 717. However, if none of the rates of change exceedsthe threshold, then the control logic 115 may classify the expired timeslot as a low usage time slot, as shown by blocks 713 and 718. As in theembodiments previously described above, the control logic 115 preferablystores, in the usage history 161, data indicative of the time slot'sclassification.

As shown by blocks 720 and 721, the aforementioned process repeats foreach time slot until all of the time slots have been monitored andclassified. Once this occurs, the control logic 115 preferably exits thelearn mode and enters the operational mode, as shown by blocks 720 and722. As can be seen by comparing FIG. 25 to FIG. 24, the control logic115, upon entering the operational mode, performs blocks 723-733 of FIG.25 similar to blocks 703-713 of FIG. 24. However, in block 704, thecontrol logic 115 sets the upper and lower thresholds for the currenttime slot based on the classification of the current time slot, asindicated by the usage history 161. As an example, if the current timeslot is classified as a high usage slot by the usage history 161, thecontrol logic 115 preferably selects upper and lower thresholds that arerespectively higher than the thresholds selected when the current timeslot is classified as a low usage time slot.

Further, a “yes” determination in block 733 indicates that the currenttime slot experienced high water usage. Thus, the control logic 115determines in block 735 whether the expired time slot is classified as ahigh usage time slot by the usage history 161. If so, the usage history161 correctly predicted the actual water usage for the expired timeslot, and the control logic 115 begins monitoring for the next timeslot, as shown by block 734. However, if the expired time slot isclassified as a low usage time slot by the usage history 161, then theusage history 161 incorrectly predicted the actual water usage for theexpired time slot. Therefore, the control logic 115 logs themisclassification in block 736, and the control logic 115 may thendetermine whether to revert back to the learn mode, as shown by blocks737 and 738.

Conversely, a “no” determination in block 733 indicates that the currenttime slot experienced low water usage. Thus, the control logic 115determines in block 741 whether the expired time slot is classified as alow usage time slot by the usage history 161. If so, the usage history161 correctly predicted the actual water usage for the expired timeslot, and the control logic 115 begins monitoring for the next timeslot, as shown by block 734. However, if the expired time slot isclassified as a low usage time slot by the usage history 161, then theusage history 161 incorrectly predicted the actual water usage for theexpired time slot. Therefore, the control logic 115 logs themisclassification in block 736, and the control logic 115 may thendetermine whether to revert back to the learn mode, as shown by blocks737 and 738. Note that a similar methodology may be used to control thestate of a cooling element 305, if desired.

In yet another example, the control logic 115 or 315 may be configuredto classify time slots based on the absolute temperature values sensedby the temperature sensor 152 rather than the rate of change of thesensed temperature. In this regard, during times of high water usage,the temperature of the water within the tank 17 is likely to reach alower value than in times of low water usage. Thus, the control logic115 or 315 may be configured to determine whether a time slot is a highor low usage time slot by comparing the highest or lowest sensedtemperature value to a threshold.

In particular, the control logic 115 may be configured to classify atime slot as a high usage time slot if the lowest temperature value or avalue close to the lowest temperature value sensed during the time slotfalls below a specified threshold. If such a temperature value is higherthan the threshold, then the control logic 115 may be configured toclassify the time slot as a low usage time slot. Further, the controllogic 315 of cooling system 300 may be configured to classify a timeslot as a high usage time slot if the highest temperature value or avalue close to the highest temperature value sensed during the time slotexceeds a specified threshold. If such a temperature values is lowerthan the threshold, then the control logic 315 may be configured toclassify the time slot as a low usage time slot.

Additionally, the control logic 115 or 315 may be configured to classifytimes slots based on a combination of parameters, such as the activationtimes of temperature control elements 25 or 305, rates of change ofwater temperature, and/or absolute water temperatures. In this regard,each parameter may be a factor in the overall decision as to whether atime slot should be characterized as a high usage time slot or a lowusage time slot.

Furthermore, the thresholds compared to the aforementioned parametersfor determining water usage may be predefined, defined by a user, ordynamically determined by the control logic 115 or 315. To dynamicallydetermine the thresholds, the control logic 115 or 315 may monitor theparameters over time to determine a pattern or range for the parametersduring different types of water usage. For example, the control logic115 or 315 may monitor the temperature sensed by the temperature sensor152 and determine that the rate of temperature change usually remainswithin a particular range over time. It may be assumed that rates oftemperature change toward the lower end of the range occur during lowusage time periods and that the rates of temperature change toward theupper end of the range occur during high usage time periods. Thus, thecontrol logic 115 or 315 may be configured to automatically set thethresholds used to classify time slots based on the detected range. Forexample, the control logic 115 or 315 may set a threshold half-way (orsome other percentage) between the maximum and minimum values of therange and may use this threshold in blocks 713 and 733 of FIGS. 24 and25.

In another example where the logic 115 or 315 uses temperature controlelement activation times to classify slots, the control logic 115 or 315may monitor, over time, the total activation times for various timeslots and determine that the total activation times usually remainwithin a particular range. It may be assumed that total activation timestoward the lower end of the range occur during low usage time periodsand that total activation times toward the upper end of the range occurduring high usage time periods. Thus, the control logic 115 or 315 maybe configured to automatically set the thresholds used to classify timeslots based on the detected range. For example, the control logic 115 or315 may set a threshold half-way (or some other percentage) between themaximum and minimum total activation times of the range and may use thisthreshold to classify time slots. In this regard, the control logic 115may classify a time slot as a high usage time slot if the totalactivation time of its heating element 25 exceeds the threshold and mayclassify the time slot as a low usage time slot if the total activationtime of its heating element 25 falls below the threshold.

In another example where the logic 115 uses absolute temperatures toclassify time slots, the logic 115 may be configured to determine avalue indicative of the lowest temperature detected by the temperaturesensor 152 over a specified time interval. It may be assumed that such avalue is detected during a high usage time period. Thus, the controllogic 115 may set a threshold to some value slightly higher thanforegoing determined value and may use this threshold to classify timeslots. In this regard, if the temperature of the water falls below thisthreshold during a particular time slot, the control logic 115 may beconfigured to classify the time slot as a high usage time slot.Otherwise, the time slot may be classified as a low usage time slot.

Similarly, the logic 315 may be configured to determine a valueindicative of the highest temperature detected by the temperature sensor152 over a specified time interval. It may be assumed that such a valueis detected during a high usage time period. Thus, the control logic 315may set a threshold to some value slightly lower than foregoingdetermined value and may use this threshold to classify time slots. Inthis regard, if the temperature of the water exceeds this thresholdduring a particular time slot, the control logic 315 may be configuredto classify the time slot as a high usage time slot. Otherwise, the timeslot may be classified as a low usage time slot.

Warning of Temperature Control Element Failure

As set forth hereinabove, a value indicative of the resistance of theheating element 25 may be measured and compared to a threshold todetermine when failure of the heating element 25 is imminent. Whenimminent failure of the heating element 25 is detected, a warning may beprovided in order to enable the problem to be proactively addressed.

Furthermore, similar techniques may be used to predict when failure of acooling element 305 is imminent and to provide a warning when it isdetermined that failure of the cooling element 305 is imminent. In thisregard, an increase in the resistance of a cooling element 305 mayindicate that failure of the cooling element 305 is imminent. Therefore,a monitoring element 162 (FIG. 12) may be used to determine a valueindicative of the resistance of the cooling element 305, and the controllogic 315 may compare this value to a threshold to determine whetherfailure of the cooling element 305 is imminent and, therefore, whether awarning should be provided. Note that other techniques for determiningwhen failure of a heating element 25 or cooling element 305 arepossible.

It should also be noted that it is not necessary for the control logic115 and 315 to provide the functionality of both providing advancedwarning of a failure of a temperature control element (e.g., heatingelement 25 or cooling element 305) and controlling theactivation/deactivation state of the temperature control element asdescribed herein. More specifically, it is possible for the controllogic 115 and 315, in combination with the monitoring element 162, tomonitor the state (e.g., resistance) of a temperature control element 25or 305 and to provide a warning of imminent failure of the temperaturecontrol element 25 or 305 without controlling the activation anddeactivation of the temperature control element 25 or 305, according tothe techniques described herein. Conversely, it is possible for thecontrol logic 115 and 315 to control the activation and deactivation ofa temperature control element 25 or 305, according to the techniquesdescribed herein, without monitoring the state of temperature controlelement 25 or 305 for the purposes of providing advanced warning of theelement's failure.

Indeed, FIGS. 26 and 27 depict embodiments where control of theactivation and deactivation of a temperature control element is retainedby a conventional controller 28 while a monitoring system 761 or 764 isconfigured to monitor the state of a temperature control element 25 or305 according to the techniques described herein in order to determinewhen failure of the temperature control element is imminent. Further,FIG. 28 depicts an exemplary operation of the monitoring systems 761 and764 in providing advanced warning of a failure of a temperature controlelement.

In this regard, FIG. 28 depicts an embodiment where a conventionalcontroller 28 controls activation of a heating element 25 and where amonitoring element 162 and control logic 767 determine when failure ofthe heating element 25 is imminent. More particularly, the monitoringelement 162, in block 771 of FIG. 28, preferably determines a valueindicative of the heating element's resistance, and the control logic115 preferably compares this value to a threshold. The threshold ispreferably set such that when the determined value exceeds thethreshold, failure of the heating element 25 is imminent. Thus, when thedetermined value exceeds the threshold, the control logic 767 controlsthe state of a user interface 145 such that a warning regarding theimminent failure of the heating element 25 is conveyed to a user, asshown by blocks 773 and 774 of FIG. 28. As an example, the userinterface 145 may comprise an LED (not shown) that is normally “off”(i.e., does not emit light) when failure of the heating element 25 isnot imminent. When the control logic 767 detects an imminent failure ofthe heating element 25, the control logic 767 may activate the LED suchthat it emits light. In such an example, the emission of light from theLED is indicative of an imminent failure of the heating element 25.

Similarly, FIG. 27 depicts an embodiment where a conventional controller28 controls activation of a cooling element 305 and where a monitoringelement 162 and control logic 727 determine when failure of the coolingelement 305 is imminent. More particularly, the monitoring element 162,in block 771 of FIG. 28, preferably determines a value indicative of thecooling element's resistance, and the control logic 767 preferablycompares this value to a threshold. The threshold is preferably set suchthat when the determined value exceeds the threshold, failure of thecooling element 305 is imminent. Thus, when the determined value exceedsthe threshold, the control logic 767 controls the state of a userinterface 145 such that a warning regarding the imminent failure of thecooling element 305 is conveyed to a user, as shown by blocks 773 and774 of FIG. 28. As an example, the user interface 145 may comprise anLED (not shown) that is normally “off” (i.e., does not emit light) whenfailure of the cooling element 305 is not imminent. When the controllogic 767 detects an imminent failure of the cooling element 305, thecontrol logic 767 may activate the LED such that it emits light. In suchan example, the emission of light from the LED is indicative of animminent failure of the cooling element 305.

Of course, it is not necessary for a conventional controller 28 tocontrol the activation and deactivation of the temperature controlelement 25 or 305 being monitored by the control logic 767. According tothe techniques previously described hereinabove, the control logic 767used to monitor a temperature control element 25 or 305 for imminentfailure may also provide the functionality of controlling the activationand deactivation of the temperature control element 25 or 305. Note thatthe control logic 767 may be implemented via hardware, software, or anycombination thereof. When implemented in software, the control logic 767may be stored on a computer-readable medium.

It should be further noted that it is not necessary for the valuecompared to a threshold in block 773 of FIG. 28 to indicate themagnitude of the temperature control element's resistance. For example,as previously described hereinabove, it is possible for measured currentvalues or voltage values to be indicative of the resistance of thetemperature control element. In another example, the monitoring element162 may be configured to measure the change in the temperature controlelement's resistance over time. A threshold may be set such that failureof the temperature control element 25 or 305 is imminent when such ameasured value exceeds the threshold. In such a case, the control logic727 may be configured to convey a warning when the measured value, whichrepresents a difference in the temperature control element's resistanceover time, exceeds the foregoing threshold. Various other techniques forpredicting when failure of the temperature control element 25 or 305 arepossible.

Hysteresis Control

As previously described hereinabove, the control logic 115 and 315 maybe configured to provide hysteresis. In this regard, during a time slotwhen it is desirable for the temperature of the water within the tank 17to be maintained at or close to a desired temperature (e.g., 130 degreesFahrenheit), the control logic 115 or 315 may be configured to activateand deactivate at slightly different temperatures (e.g., 125 and 135degrees Fahrenheit) in order to provide hysteresis. If desired, thecontrol logic 115 and/or 315 may be configured to control hysteresisbased on the usage history 161.

As an example, the control logic 115 or 315 may be configured to providea greater hysteresis effect for time slots associated with low waterusage by the usage history 161 and a lesser hysteresis effect for timeslots associated with high water usage. For example, for time slots oflow water usage, the control logic 115 may activate and deactivate oneor more temperature control elements 25 when the temperature of thewater respectively exceeds and falls below the temperature thresholds of115 degrees Fahrenheit and 125 degrees Fahrenheit, thereby providing a10 degree differential between the two thresholds. However, for timeslots of high water usage, the control logic 115 may activate anddeactivate one or more temperature control elements 25 when thetemperature of the water exceeds and falls below 142 degrees Fahrenheitand 146 degrees Fahrenheit, thereby providing only a 4 degreedifferential between the two thresholds.

Note that there are various advantages that may be achieved bycontrolling the threshold hysteresis, as described above. For example,the threshold hysteresis may be controlled in order to increase theefficiency and/or performance of the system 100 or 300. In this regard,assume that it is desirable for the approximate temperature of the waterwithin the tank 17 to be approximately 130 degrees Fahrenheit (e.g., auser sets the desired temperature to approximately 130 degreesFahrenheit) for a particular time period. During such a time period, thecontrol logic 115 of the liquid heating system 100 may be configured toactivate the heating element 25 based on a lower temperature thresholdof 125 degrees Fahrenheit and to deactivate the heating element 25 basedon an upper threshold temperature of 135 degrees Fahrenheit, therebyproviding a ten degree hysteresis effect. However, if a high usage event(i.e., an event drawing a significant amount of water from the tank 17)occurs, it is possible for the temperature within the tank 17 to fall toundesirably low levels substantially below the lower temperaturethreshold.

Moreover, if temperature thresholds providing less hysteresis are usedin lieu of the foregoing thresholds, then the lowest temperature towhich the water falls due to the same high usage event may be higherthan the lowest temperature for an embodiment using temperaturethresholds that provide greater hysteresis. In this regard, assume thata lower temperature threshold of 128 degrees and an upper temperaturethreshold of 132 degrees are used to control the state of the heatingelement 25, thereby providing only a four degree hysteresis effect. Insuch an embodiment, the heating element 25 is activated more frequentlythan in the previously described embodiment (i.e., the embodiment havinga ten degree hysteresis effect). Indeed, the control logic 115 is likelyto respond (e.g., activate the heating element 25) more quickly inresponse to a high usage event. As a result, the lowest temperaturereached by the water due to the high usage event may be higher for theembodiment having temperature thresholds that provide a smallerhysteresis effect (i.e., that have a lower temperature differencebetween the upper threshold and the lower threshold).

Thus, for time periods or time slots associated with high usage patternsby the usage history 161, the control logic 115 preferably decreases thehysteresis (i.e., decreases the temperature difference between the upperthreshold and lower threshold) of the thresholds used to control theheating element 25 in addition to or in lieu of increasing the averagetemperature of the thresholds. Further, for time periods or time slotsassociated with high usage patterns by the usage history 161, thecontrol logic 315 preferably decreases the hysteresis effect of thethresholds used to control the cooling element 305 in addition to or inlieu of decreasing the average temperature of the thresholds.

As an example, in implementing block 604 or 693 of FIGS. 18 and 19, thecontrol logic 115 may select an upper threshold and a lower thresholdhaving a high temperature average and a low hysteresis, as shown byblocks 777 and 778 of FIG. 29, if the current time slot being monitoredis a high usage time slot, as indicated by the usage history 161. Notethat the temperature average (T_(avg)) may be calculated according tothe equation:T _(avg)=(T _(upper) +T _(lower))/2and the hysteresis (HYS) may be calculated according to the equation:HYS=T _(upper) −T _(lower).Further, the control logic 115 may select an upper threshold and a lowerthreshold having a low temperature average and a high hysteresis, asshown by blocks 777 and 779 of FIG. 29, if the current time slot beingmonitored is a low usage time slot, as indicated by the usage history161. Of course, in other embodiments, the control logic 115 may beconfigured to only adjust the temperature average or the hysteresisbased on the classification of the current time slot, if desired. Inthis regard, it is not necessary to select the temperature thresholdssuch that both the temperature average and the hysteresis of theselected thresholds are different for different time slotclassifications.

Conversely, in implementing block 604 or 693 of FIGS. 22 and 23, thecontrol logic 315 may select an upper threshold and a lower thresholdhaving a low temperature average and a low hysteresis, as shown byblocks 781 and 782 of FIG. 30, if the current time slot being monitoredis a high usage time slot, as indicated by the usage history 161.Further, the control logic 315 may select an upper threshold and a lowerthreshold having a high temperature average and a high hysteresis, asshown by blocks 781 and 783 of FIG. 30, if the current time slot beingmonitored is a low usage time slot, as indicated by the usage history161. Of course, in other embodiments, the control logic 315 may beconfigured to only adjust the temperature average or the hysteresisbased on the classification of the current time slot, if desired.

Note that the control logic 115 and/or 315 may also change thehysteresis for time slots of the same classification. For example, twotime slots may both be classified as high water usage time slots.Nevertheless, during the learn mode, one of the time slots experience ahigher amount of water usage than the other, and the parameters used toclassify time slots (e.g., total activation times of temperature controlelements 25 or 305, temperature change rates, absolute temperatures,etc.) may be a basis on which the control logic 115 and/or 315 providesdifferent hysteresis for the two time slots.

As an example, assume that it is desirable to maintain the temperaturewithin the tank at approximately 140 degrees Fahrenheit for high waterusage time slots and that the time slots are classified based on totalactivation times of one or more temperature control elements 25 or 305,as described above. The control logic 115 or 315, for one high usagetime slot, may be configured to activate and deactivate one or moretemperature control elements 25 or 305 when the tank's waterrespectively falls below and exceeds 135 degrees Fahrenheit and 145degrees Fahrenheit. However, another high usage time slot may beassociated with a higher total activation time measured during the learnmode. Thus, it may be desirable to provide a smaller hysteresis effectfor the foregoing time slot, and the control logic 115 or 315 may beconfigured to control the activation and deactivation of the temperaturecontrol element 25 or 305 via different thresholds. For example, toprovide a smaller hysteresis effect, the control logic 115 or 315 may beconfigured to activate and deactivate one or more temperature controlelements 25 or 305 within the tank 17 when the tank's water falls belowand exceeds 138 degrees Fahrenheit and 141 degrees Fahrenheit.

In another example, absolute temperatures or temperature change ratessensed by the temperature sensor 152 may provide a basis for controllingor setting the hysteresis. In this regard, during a time slot ofexceptionally high water use, the temperature of the water within thetank 17 of the system 100 may fall to an undesirably low level eventhough the time slot may be classified as a high usage time slot and,therefore, be associated with relatively high temperature thresholds foractivating and deactivating the temperature control element 25 or 305.Thus, it may be particularly desirable to utilize a smaller hysteresiseffect for such a time slot in an effort to keep the water temperaturefrom falling to such an undesirable level for future occurrences of thetime slot.

Moreover, if the control logic 115 determines that, during a particulartime slot, the temperature of the water fell below a specified thresholdor that the temperature change rate exceeded a specified threshold, thecontrol logic 115 may be configured to set the temperature thresholdsfor future occurrences of the particular time slot such that aparticularly small hysteresis is realized for the time slot. By usingsuch thresholds to control a heating element 25, the control logic 115is likely to activate the heating element 25 more quickly in response toa high usage event occurring during the time slot, thereby helping toprevent the water temperature from falling as far when the expected highusage event occurs.

Note that various other methodologies for selecting a desired hysteresisbounds for activating and deactivating a temperature control element 25or 305 during a particular time period or time slot are possible withoutdeparting from the principles of the present invention.

Multiple Temperature Control Elements

It should be noted that multiple temperature control elements 25 or 305may be employed within a single tank 17, particularly if the tank 17 isrelatively large requiring significant activation of the temperaturecontrol elements over time. A single controller 110 or 310 may be usedto control each of the temperature control elements 25 or 305 accordingto techniques similar to those described hereinabove, or multiplecontrollers 110 or 310 may be used to control different ones of thetemperature control elements 25 and 305 according to techniques similarto those described hereinabove. In this regard, methodologies similar tothose described hereinabove may be used to determine when to activateand deactivate the temperature control elements 25 and 305.

When a controller 110 or 310 determines that activation of a temperaturecontrol element 25 or 305 is desirable according to the techniquesdescribed hereinabove, the controller 110 or 310 may activate only oneof the temperature control elements 25 or 305 within the tank 17 or mayactivate a plurality of the temperature control elements 25 or 305within the tank 17. Note that for determining water usage history for atank 17, the controller 110 or 310 preferably sums the activation timesof all the temperature control elements 25 or 305 within the tank foreach relevant time period. For example, to determine the totalactivation time of a time slot for a tank 17 within the heating system100, the controller 110 preferably sums the activation times, for thetime slot, of each heating element 25 within the tank 17. Further, todetermine the total activation time of a time slot for a tank 17 withinthe cooling system 300, the controller 310 preferably sums theactivation times, for the time slot, of each cooling element 305 withinthe tank 17.

Note that it is possible for conventional heating and cooling systemsemploying multiple temperature control elements and controllers to beretrofitted with one or more controllers in accordance with the presentinvention. As an example, refer to FIG. 31, which depicts a conventionalheating system 797 having multiple heating elements 25 a and 25 b, eachof which is controlled via a different conventional controller 28 a or28 b. Both controllers 28 a and 28 b may be removed and replaced with acontroller 110 (FIG. 6) configured in accordance with the presentinvention. Such a controller 110 may be used to control both heatingelements 25 a and 25 b, or each of the heating elements 25 a and 25 bmay be controlled by a different one of a plurality of controllers 110that are added to the system 797.

In one exemplary embodiment, one of the controllers 28 a or 28 b may beremoved and replaced with a controller, and the other controller 28 a or28 b may be allowed to remain. FIG. 32 depicts a system 800 that isconstructed by removing one of the controllers 28 a of FIG. 31 andreplacing it with a controller 810 configured to operate in accordancewith the principles of the present invention. In this regard, thecontroller 810 may control one of the heating elements 25 a according tothe techniques previously described hereinabove, and the controller 28 bmay control the other heating element 25 b.

In addition, the controller 810 of FIG. 32 may be configured to controlthe operation of the heating element 25 b that is also controlled byconventional controller 28 b. FIG. 33 depicts an exemplary configurationof the controller 810 for such an embodiment. As can be seen bycomparing FIG. 33 to FIG. 6, the controller 810 of FIG. 31 may besimilar to the controller 110 of FIG. 6. Indeed, the control logic 815of the controller 810 may control the operation of the heating element25 a via the switch 156 via techniques previously described hereinabove.Further, the controller 810 preferably also comprises another switch 812used by the control logic 815 to control the operational state of theswitch 25 b. In this regard, rather than connecting the power source 39directly to the controller 28 b, the power source 39 is connected to thecontroller 28 b through the switch 812. Note that the control logic 815,similar to the control logic 115 of FIG. 6, may be implemented inhardware, software, or any combination thereof.

Moreover, if the heating element 25 b is to be activated, the controllogic 815 may transmit, to the switch 812, a control signal that causesthe switch 812 to close thereby causing electrical current to flow fromthe power source 39 to the controller 28 b. As previously describedabove, the conventional controller 28 b is configured to activate theheating element 25 b if the water temperature sensed by the controller28 b is below the threshold set for the controller 28 b. In such asituation, the controller 28 b allows electrical current from the powersource 39 to pass through the controller 28 b to the heating element 25b provided that the water temperature measured by the controller 28 b isless than the threshold temperature utilized by the controller 28 b. Todeactivate the heating element 25 b, the control logic 815 may transmit,to the switch 812, a control signal that causes the switch 812 to openthereby preventing electrical current from flowing to the heatingelement 25 b from the power source 39. In such a situation, the heatingelement 25 b is in a deactivation state.

Note that there are various methodologies that may be employed by thecontroller 810 to control the activation state of the heating elements25 a and 25 b. For example, when the control logic 815 determines thatthe temperature of the water within the tank 17 has fallen below athreshold such that, according to the techniques described herein, thewater is to be heated, the control logic 815 may attempt to activateboth heating elements 25 a and 25 b by closing both switches 156 and 812or may attempt to selectively activate only one heating element 25 a or25 b by closing only one of the switches 156 or 812. Further, when thecontrol logic 815 determines that the temperature of the water withinthe tank 17 has exceeded a threshold such that, according to thetechniques described herein, heating of the water is no longerdesirable, the control logic 815 preferably ensures that both heatingelements 25 a and 25 b are deactivated by ensuring that both switches156 and 812 are open.

Also, in another embodiment, the control logic 815 may attempt toselectively activate one heating element 25 a or 25 b when thetemperature of the water, as sensed by one temperature sensor 152, iswithin one temperature range, and the control logic 815 may attempt toactivate both heating elements 25 a and 25 b when the temperature of thewater is within another temperature range. For example, if the watertemperature is above a first threshold (e.g., 150 degrees Fahrenheit),the control logic 815 may be configured to ensure that both heatingelements 25 a and 25 b are deactivated. However, if the watertemperature is between two thresholds (e.g., 130 degrees Fahrenheit and150 degrees Fahrenheit), then the control logic 815 may be configured toselectively activate only one heating element 25 a or 25 b. However, ifthe water temperature falls below the lower of the foregoing twothresholds (i.e., 130 degrees Fahrenheit), then the control logic 815may be configured to attempt to activate both heating elements 25 a and25 b.

Note that depending on the configuration of the system 800, simultaneousactivation of both heating elements 25 a and 25 b may draw a significantamount of current causing a fire hazard or causing a circuit breaker(not shown) to trip. For such systems 800, it may be desirable for thecontrol logic 815 to attempt to activate only one heating element 25 aor 25 b at a time. Furthermore, in other embodiments other numbers(e.g., three or more) of heating elements may be employed withoutdeparting from the principles of the present invention.

As shown by FIG. 33, a monitoring element 874 may be employed to enablethe control logic 815 to verify activation of the heating element 25 b.In this regard, in the configuration shown by FIG. 33, it is possiblefor the conventional controller 28 b to prevent activation of theheating element 25 b even when the switch 812 is placed in a closedstate by the control logic 815. In such a situation, it is possible forthe control logic 815 to misidentify the correct water usage patternunless steps are taken to verify or ensure activation of the heatingelement 25 b.

In this regard, if the activation of the heating element 25 b is notverified or ensured, it is possible for the control logic 815 to placethe switch 812 into a closed state and to monitor the operation of thesystem 800 assuming that the heating element 25 b is in an activationstate. If the controller 28 b, in reality, prevents activation of theheating element 25 b due to the temperature of the water not exceedingthe temperature threshold being utilized by the controller 28 b, then itis possible for the control logic 815 to miscalculate the total amountof actual activation time for the heating elements 25 a and 25 b. Thus,in some situations, the control logic 815 may mischaracterize aparticular time period or time slot as a high usage time slot instead ofproperly characterizing the time slot as a low usage state. To preventsuch an error, the control logic 812, after placing the switch 812 intoa closed state, may verify that the monitoring element 874 actuallydetects current or a voltage before assuming that the heating element 25b is in an activation state.

Thus, when calculating the total activation time for a particular timeperiod or time slot, the control logic 815 may sum the total amount oftime that the switch 156 has been put in a closed state during the timeperiod and the total amount of time that the switch 812 has been put ina closed state during the time period. These two sums may be added toproduce a total activation time. The control logic 815 may then sum thetotal amount of time that the switch 812 was closed without currentbeing detected by the monitoring element 874. This sum is indicative ofthe total time period that the control logic 815 attempted to activatethe heating element 25 b, but activation of the heating element 25 b wasprevented by the controller 28 b. Moreover, the control logic 815 maysubtract the foregoing sum from the total activation time to yield anactual total activation time that accurately reflects the total amountof time that both heating elements 25 a and 25 b were actually activatedduring the time period. Such techniques effectively add the time thatthe switch 812 is closed to the total activation time only if thecontrol logic 815 is able to verify, via the monitoring element 834,that the heating element 25 b is activated. Note that other techniquesfor ensuring an accurate total activation time calculation are possible.

It should be noted that the controller 810 may be configured to utilizea plurality of parameters to classify and monitor time slots. In thisregard, the plurality of parameters may be utilized to provide a betterindication of usage patterns as compared to the utilization of anysingle parameter. For example, assume that the conventional controller28 b is allowed to remain and to control the heating element 25 b, asdescribed above for the foregoing embodiment depicted by FIG. 32. Beforeclassifying time slots, the controller 810 may monitor the state ofvarious parameters to determine patterns indicative of idle time periods(i.e., time periods when no or extremely low water usage occurs), lowusage time periods, and high usage time periods.

For example, the control logic 815 of the controller 810 may monitor thetemperatures sensed by the controller's temperature sensor 152 and theactivation states of upper and lower heating elements 25 a and 25 b. Inthis regard, idle time periods are likely to be characterized byrelatively constant temperature change rates sensed by the sensor 152.Further, if similar thresholds are used to control both of the elements25 a and 25 b, then idle time periods are also likely to becharacterized by short activation times of the lower element 25 b and noor extremely short activation times of the upper element 25 a. Further,periods of low usage are likely to be characterized by more erratictemperature change rates and slightly longer activation times of thelower heating element 25 b, and periods of high usage are likely to becharacterized by a combination of high temperature change rates andcomparatively long activation times of both heating elements 25 a and 25b.

Moreover, the foregoing parameters may be monitored and patternsindicative of idle time periods may be automatically identified. In thisregard, relatively constant temperature change rates may be a key factorto identify such time periods. This is particularly true in embodimentswhere the amount of thermal loss associated with the tank 17 may vary,for example, when the tank 17 is located outdoors or in a room, such asa garage, that is not insulated. In this regard, the amount of thermalloss may vary drastically depending on the time of day as atmospherictemperatures typically decrease at night or depending on the season ofthe year as atmospheric temperatures typically decrease in winter andincrease in summer. Moreover, even though activation times of theelements 25 a and/or 25 b for idle time periods may vary due toatmospheric temperature fluctuations, a relatively constant temperaturechange rate over a short duration (e.g., less than approximately onehour) may indicate an idle time period regardless of the aforementionedatmospheric temperature fluctuations. Thus, the control logic 115 maydetect idle time periods by detecting when the temperature change ratesensed by the sensor 152 remains substantially constant and when theactivation times of the elements 25 a and 25 b are relatively low.

After detecting idle time periods, the behavior of the heating elements25 a and 25 b may be monitored to identify low or high usage timeperiods. For example, normal activation times of the heating elements 25a and 25 b for idle time periods may be determined for various times ofthe day once idle time periods for such times of the day have beenidentified. The control logic 115 may then use these various normalactivation times as reference times to classify time slots such that thewater usage classification determined by the control logic 115 accountsfor thermal loss variations.

To better illustrate the foregoing, assume that the activation time ofthe lower heating element 25 b, in general, increases substantiallyduring the night as compared to the day due to more significant thermallosses at night. In such an example, the control logic 115 maymischaracterize a low usage pattern at night as a high usage patternsince the activation times of the heating elements 25 a and 25 bgenerally increase at night regardless of water use. Moreover, byidentifying idle times during the day and at night, the control logic115 may account for the foregoing effect.

As an example, when classifying a time slot during the day, the controllogic 115 may compare the total activation time of the element 25 b tothe total activation time of the element 25 b measured during a knownidle time period occurring close to the time slot (i.e., occurringduring the day). Depending on the difference, the control logic 115 mayclassify the time slot. In particular, the control logic 115 mayclassify the time slot as a high usage time slot only if the differenceis relatively large (e.g., exceeds a threshold).

Further, when classifying a time slot at night, the control logic 115may compare the total activation time of the element 25 b for the timeslot to the total activation time of the element 25 b measured during aknown idle time period occurring close to the time slot (i.e., occurringat night). Depending on the difference, the control logic 115 mayclassify the time slot. By using reference activation times from idletime slots occurring during or close to the same time of day as aparticular time slot being classified, the difference between the totalactivation time of the particular time slot and the reference activationtime is a better indication of actual water usage.

To better illustrate the foregoing, assume that the tank 17 experiencesmore significant thermal losses at night generally causing higher totalactivation times for the heating elements 25 a and 25 b for nighttimetime slots as compared to daytime time slots. Prior to performing thelearn mode depicted by FIGS. 15 and 16, the control logic 115 maymonitor the temperature change rates sensed by the temperature sensor152 in order to identify idle time slots. In this regard, the controllogic 115 detects that a particular time slot is an idle time slot ifthe temperature change rate sensed by the sensor 152 remains relativelyconstant during the particular time slot. Further, by comparing sensedtemperature change rates for the idle time slots, the control logic 115may discover that daytime idle time slots have constant temperature ratechanges that generally fall within a first temperature range and thatnighttime idle time slots have constant temperature rate changes thatgenerally fall within a second temperature range, which is significantlyhigher than the first temperature range.

Thus, upon entering the learn mode, the control logic 115 may select theactivation time thresholds used in blocks 521 and 577 of FIGS. 15 and 16based on the time of day of the time slot being monitored. For example,if the current time slot being monitored by the methodology depicted byFIGS. 15 and 16 occurs during the daytime (i.e., the time periodpreviously associated with idle time slots having lower temperaturechange rates), the control logic 115 may utilize a first activationthreshold in blocks 521 and 577. However, if the current time slot beingmonitored by the methodology depicted by FIGS. 15 and 16 occurs duringthe nighttime (i.e., the time period previously associated with idletime slots having higher temperature change rates), the control logic115 may utilize a second activation threshold in blocks 521 and 577,where the second activation threshold is significantly higher than thefirst temperature threshold in order to account for the greaternighttime thermal losses associated with the tank 17. In particular, thefirst activation threshold may correspond to (e.g., be slightly higherthan) the total activation threshold detected for a daytime idle timeslot, and the second activation threshold may correspond to (e.g., beslightly higher than) the total activation threshold detected for anighttime idle time slot.

It should be noted that similar techniques may be employed to accountfor varying thermal losses due to seasonal changes. In this regard, thecontrol logic 115 may detect that idle time periods for the same time ofday are associated with greater temperature change rates during thewinter months and with lesser temperature change rates during the summermonths. Thus, the control logic 115 may select the activation thresholdsused in blocks 521 and 577 based on the time of year. More specifically,the control logic 115 may select lower total activation time thresholdsfor time slots in the summer months and higher total activation timethresholds for time slots in the winter months. Further, it should beemphasized that the foregoing techniques for accounting for thermal lossvariations have been presented for illustrative purposes, and variousother techniques for accounting for thermal loss variations are possiblewithout departing from the principles of the present invention.

Indeed, it should be noted that idle time periods may be detected bymonitoring parameters other than temperature change rates. For example,idle time periods may be detected by monitoring water temperaturepatterns or activation patterns of a temperature control element 25 or305. In this regard, such water temperature patterns and activationpatterns tend to repeat during idle time periods as the water isrepetitively heated to an upper temperature threshold and then allowedto cool to a lower temperature threshold. The heating and cooling duringidle time periods tend to be a respectively constant rates. However, incontrast, the heating and cooling during non-idle time periods tend tobe erratic depending on the different patterns of water use. Such aphenomena tends to cause the water temperature and/or temperaturecontrol element activation patterns, during non-idle time periods, to beerratic as well. Thus, the control logic 115 or 315 may identify an idletime period by identifying when repetitive patterns for watertemperature and/or temperature control element activations occur.

Turning now to another exemplary embodiment of the present invention,both of the conventional controllers 28 a and 28 b (FIG. 32) may beremoved in order to form a liquid heating system 825, such as isdepicted by FIG. 34. In particular, one of the conventional controllers28 a is replaced with a controller 830 in accordance with the presentinvention, and the other conventional controller 28 b is replaced with acontrol module 832, which will be described in more detail hereinbelow.Note that the control module 832 may reside on a base 51 (FIGS. 8 and9), which can be easily connected to the tank 17 according to techniquesdescribed hereinabove in the context of connecting controller 110 to thetank 17 via the base 51.

As shown by FIG. 33, the controller 830 may be similar to the controller810 of FIG. 33. Indeed, the controller 830 may comprise control logic835 for controlling the operation of the heating elements 25 a and 25 b.The control logic 835 may be implemented in hardware, software, or anycombination thereof.

According to the techniques previously described hereinabove, thecontrol logic 835 may activate and deactivate the heating elements 25 aand 25 b. In particular, the control logic 835 may be configured tocontrol the state of the heating element 25 a via switch 156 and may beconfigured to control the state of the heating element 25 b via switch812, which may reside within the controller 830 or may reside within thecontrol module 832, as shown by FIG. 35. Further, the control logic 835may determine whether to activate or deactivate the heating elements 25a and 25 b according to the same or similar techniques used by thecontrol logic 815 of FIG. 33.

As shown by FIG. 35, the control module 832 may comprise a temperaturesensor 837 configured to detect water temperature at or close to theproximity of the heating element 25 b. The control logic 835 may beconfigured to activate and deactivate the heating element 25 a based onthe temperatures sensed by the temperature sensor 152, and the controllogic 835 may be configured to activate and deactivate the heatingelement 25 b based on the temperatures sensed by the temperature sensor837. In an alternative embodiment, the control logic 835 may beconfigured to activate and deactivate both of the heating elements 25 aand 25 b based on the temperatures sensed by only one of the temperaturesensors 152 or 837.

Furthermore, the control module 832 may also comprise a monitoringelement 841 configured to detect when failure of the control element 25b is imminent according to techniques previously described hereinabove.When an imminent failure of the control element 25 b is detected, thecontrol logic 835 may be configured to convey a warning to a user viauser interface 145.

Note that accounting for thermal loss variations may be simplified whentemperature sensors are located close to both the bottom and top of thetank 17. In this regard, the temperature change rate of both upper andlower sensors 152 and 837 increases for time periods associated withhigher thermal losses and decreases for time periods associated withlower thermal losses. Thus, by simply comparing the temperature changerate (i.e., the rate that the sensed temperature changes over a giventime period) of an upper sensor 152 and a lower temperature sensor 837,the control logic 835 can determine water usage.

In this regard, similar temperature change rates, as sensed by the uppersensor 152 and the lower sensor 837, indicate an idle time period.Slightly different temperature change rates, as sensed by the uppersensor 152 and the lower sensor 837, indicate low water usage, andsignificantly different temperature change rates, as sensed by the uppersensor 152 and the lower sensor 837, indicate high water usage. Thus,the control logic 835 may be configured to determine the differencebetween temperature change rates detected by the upper sensor 152 andthe lower sensor 837 and to classify a current time slot based on thisdifference. In this regard, if the difference exceeds a particularthreshold, the control logic 835 may classify the time slot as a highwater usage time slot. Note that multiple temperature sensors may beused to classify time slots in the foregoing manner regardless ofwhether multiple heating elements 25 a and 25 b are employed.

It should be noted that techniques similar to those described above forcontrolling multiple heating elements 25 a and 25 b may be employed tocontrol multiple cooling elements 305 a and 305 b, such as is depictedby FIG. 36. In this regard, a single controller 850 may be used tocontrol multiple cooling elements 305 a and 305 b, or multiplecontrollers 850 may be used to control different ones of multiplecooling elements 305 a and 305 b. Further, if a conventional coolingsystem is retrofitted to include both a controller 850 in accordancewith the present invention and a conventional controller 928, then anexemplary configuration of the controller 850 may be similar to thepreviously described configuration of controller 810 for system 800, ascan be seen by comparing FIGS. 33 and 37.

In particular, the control logic 852, which may be implemented inhardware, software, or any combination thereof, may control activationand deactivation of the cooling element 305 b by controlling the stateof a switch 932 similar to how the control logic 815 (FIG. 33) controlsthe operation of the heating element 25 b via switch 812. Further, thecontroller 850 may employ a monitoring element 934, similar to themonitoring element 874 of FIG. 33, in order to enable the control logic852 to verify that the cooling element 305 b is actually activated whenthe switch 932 is closed. The control logic 852 then adds the time thatthe switch 932 is closed to the total activation time associated with aparticular time period or slot only if the control logic 850 is able toverify, via the monitoring element 934, that the cooling element 305 bis activated. Various techniques for achieving the foregoing arepossible such as, for example, summing the amount of time that theswitches 156 and 812 are closed during the time period and then reducingthe summed amount by the amount of time that the switch 932 is closedwithout the cooling element 305 b being activated. Further, thetechniques described above for accounting for thermal loss variationsmay be employed within a liquid cooling system in order to account forthermal loss variations associated with the tank 17 of the coolingsystem.

In addition, for embodiments employing multiple temperature controlelements 25 or 305, it may be desirable to selectively activate thetemperature control elements 25 or 305 such that the total activation ofeach elements 25 or 305, over time, is substantially equal. In thisregard, most temperature control elements 25 or 305 have a finiteoperation life that is generally decreased as the elements 25 or 305 areused. Thus, the more a temperature control element 25 or 305 isactivated, the sooner the element 25 or 305 is likely to fail. Moreover,by ensuring that each temperature control element 25 or 305 within aparticular tank 17 is activated for substantially the same amount oftime, the amount of time before failure of any one of the elements 25 or305 can be increased.

Therefore, if multiple heating elements 25 a and 25 b are employedwithin a tank 17, the logic 815 (FIG. 33) preferably maintains a runningsum of the total lifetime activation of each heating element 25 a and 25b. The logic 815 also attempts to selectively activate the heatingelements 25 a and 25 b such that the total life-time activation of eachheating element 25 a and 25 b remains substantially equal to the totallife-time activation of the other heating elements 25 a and 25 b.Further, if multiple cooling elements 305 a and 305 b are employedwithin a particular tank 17, the logic 852 (FIG. 37) preferablymaintains a running sum of the total life-time activation of eachcooling element 305 a and 305 b. The logic 852 also attempts toselectively activate the cooling elements 305 a and 305 b such that thetotal lifetime activation of each cooling element 305 a and 305 bremains substantially equal to the total lifetime activation of theother cooling elements 305 a and 305 b.

There are various techniques that may be employed by the control logic815 and 852 to ensure that the total lifetime activation of thetemperature control elements within a particular tank 17 remainsubstantially equal. FIG. 38 depicts an exemplary methodology to ensurethat the total lifetime activation of the temperature control elementswithin a particular tank 17 remain substantially equal. FIG. 38 will nowbe described in more detail assuming that the control logic 815 isimplementing the methodology of FIG. 33 in an effort to ensure that thetotal life-time activation of multiple heating elements 25 a and 25 bwithin the tank 17 remain substantially equal. However, it should benoted that the same methodology may be implemented by the control logic852 to ensure that the total lifetime activation of multiple coolingelements 305 a and 305 b within a tank 17 remain substantially equal.

In order to ensure that the total life-time activation of multipleheating elements 25 a and 25 b within a tank 17 remain substantiallyequal, the control logic 815, for each heating element 25 a and 25 b,preferably maintains an activation sum indicative of the element's totallife-time activation. As shown by block 941 of FIG. 38, the controllogic 815 initially sets the value of the activation sum for eachheating element 25 a or 25 b to zero. After initializing the activationsums, the control logic 815 preferably monitors the temperature of thewater within the tank 17 and determines when heating elements 25 a and25 b are to be activated. Note that the control logic 815 may employtechniques similar to those described hereinabove for determiningwhether the heating elements 25 a and 25 b and are to be activated. Thatis, the control logic 815 may determine to selectively activate anddeactivate heating elements 25 a and 25 b based on a usage history 161of the heating elements 25 a and 25 b.

Indeed, the methodology, depicted by FIGS. 15-19 may be employed todetermine when the heating elements 25 a and 25 b are to be activated.In this regard, the control logic may activate one of the heatingelements when performing blocks 547 and 655 and may deactivate theheating elements 25 a and 25 b when performing blocks 561 and 671.However, in other embodiments, other techniques may be employed todetermine when heating elements 25 a and 25 b are to be activated anddeactivated. In fact, conventional techniques and/or techniques otherthan those described hereinabove may be employed by the logic 815 todetermine when heating elements 25 a and 25 b are to be activated anddeactivated. As an example, one or more conventional controllers maydetermine when the water is to be heated, and in response to anindication from such a controller that the water is to be heated, thecontrol logic 815 may select which of the heating elements 25 a and 25 bare to be activated according to the techniques described below.

In any event, when the control logic 815 determines that the waterwithin the tank 17 is to be heated (e.g., when the temperature of thewater falls below a temperature threshold indicating that heating oradditional heating of the water is to be initiated), the logic 815preferably selects, for activation, the heating element 25 a or 25 bhaving the lowest activation sum, as shown by blocks 942 and 945. Ifmore than one heating element 25 a or 25 b has the same lowestactivation sum, then the control logic 815 may randomly select one suchheating element 25 a or 25 b or may select one of the heating elements25 a or 25 b with the lowest activation sum based on any known orfuture-developed algorithm.

As shown by blocks 948 and 952, the control logic 815 activates theselected heating element 25 a or 25 b and stores a time value indicativeof the current time, as indicated via clock 134 (FIG. 7), when theselected heating element 25 a or 25 b activated in block 948. As will bedescribed in more detail hereafter, this stored value will be used toupdate the activation sum of the activated heating element 25 a or 25 b.

When the control logic 815 determines heating of the water within thetank 17 is to be stopped or reduced (e.g., when the temperature of thewater exceeds a threshold indicating that heating of the water is to bestopped or reduced), the logic 815 preferably selects, for deactivation,the activated heating element 25 a or 25 b having the highest activationsum, as shown by blocks 955 and 957. If more than one activated heatingelement 25 a or 25 b has the highest activation sum, then the controllogic 815 may randomly select one such heating element 25 a or 25 b ormay select one of the activated heating elements 25 a or 25 b with thehighest activation sum based on any known or future-developed algorithm.As shown by block 959, the control logic 815 deactivates the selectedheating element 25 a or 25 b. The control logic 815 then retrieves, inblock 962, the time value that was stored when the deactivated heatingelement 25 a or 25 b was previously activated and subtracts thisretrieved time value from the current time, as indicated via clock 134(FIG. 7), thereby determining the amount of time that the heatingelement 25 a or 25 b was activated. In block 964, the control logic 815adds the difference (i.e., the result of block 962) to the activationsum of the deactivated element 25 a or 25 b such that its activation sumaccurately reflects the total life-time activation time for the element25 a or 25 b.

Note that, when one of the heating elements 25 a or 25 b fails, theother heating elements 25 a or 25 b are likely to be close to failure asall of the heating elements 25 a or 25 b should have approximately thesame total life-time activation. Thus, when one of the heating elements25 a or 25 b fails, all of the heating elements 25 a or 25 b, includingthe ones that have yet to fail, are preferably replaced. Uponreplacement, the methodology of FIG. 37 is preferably repeated such thatthe activation sums associated with the replaced heating elements 25 aor 25 b are re-initialized to zero via implementation of block 941.

In addition, it should be noted that FIG. 32 depicts an exemplarymethodology for ensuring that each of the temperature control elements25 or 305 within the same tank 17 is activated for substantially thesame amount of time over the life of the temperature control elements 25or 305. Other methodologies for achieving the same or similar effectsare possible.

Although the present invention has been described above as a employing atank 17 to hold and dispense water, it should be noted that other typesof liquids may be held and dispensed by the tank 17. Further, thetemperature of such liquids may be controlled according to the sametechniques described hereinabove for controlling the temperature ofwater within the tank 17.

In addition, it should be noted that it is not necessary for atemperature control element 25 or 305 to be completely turned off whendeactivated. In this regard, a heating element 25 is “deactivated” whenthe state of the element 25 is controlled such that the amount of heatprovided by the element 25 is significantly reduced. Further, a coolingelement 305 is “deactivated” when the state of the element 305 iscontrolled such that the amount of cooling provided by the element 305is significantly reduced. Similarly, a heating element 25 is “activated”when the state of the element 25 is controlled such that the amount ofheat provided by the element 25 is significantly increased, and acooling element 305 is “activated” when the state of the element 305 iscontrolled such that the amount of cooling provided by the element 305is significantly increased.

Moreover, the tank's water usage may be monitored via techniques otherthan those described hereinabove. For example, the tank's water usagemay be monitored by tracking the amount of heating or cooling providedby the temperature control elements 25 or 305 within the tank 17. Inthis regard, rather than calculating total activation time of theheating elements 25, a value indicative of the total amount of heatprovided by the heating elements 25 may be calculated for a particulartime period in order to determine the water usage associated with thetime period. In general, the more heat provided by the heating elements25, the higher the water usage. Note that the amount of current providedto a heating element 25 may be monitored in order to determine a valueindicative of an amount of heat generated by the heating element 25.Similarly, rather than calculating a total activation time of thecooling elements 305, a value indicative of the total amount of coolingprovided by the cooling elements may be calculated for a particular timeperiod in order to determine the water usage associated with the timeperiod.

In another example, the amount of water drawn into or out of the tank 17may be tracked in order to monitor the tank's water usage. In thisregard, at least one sensor (not shown) for detecting the amount ofwater passing through each inlet of the tank 17 and/or at least onesensor (not shown) for detecting the amount of water passing througheach outlet of the tank 17 may be employed to track water usage. Othertechniques for monitoring water usage are possible in yet otherembodiments.

It should be emphasized that the above-described embodiments of thepresent invention, particularly, any “preferred” embodiments, are merelypossible examples of implementations, merely set forth for a clearunderstanding of the principles of the invention. Many variations andmodifications may be made to the above-described embodiment(s) of theinvention without departing substantially from the spirit and principlesof the invention. All such modifications and variations are intended tobe included herein within the scope of this disclosure and the presentinvention and protected by the following claims.

1. A system for controlling a temperature of a liquid residing within atank, comprising: a temperature sensor configured to detect thetemperature of the liquid; a temperature control element configured toalter the temperature of the liquid, the temperature control elementhaving at least an activated state and a deactivated state, wherein heatis applied to the liquid when the temperature control element is in theactivated state; a clock; and logic configured to maintain thetemperature of the liquid at a first temperature threshold by adjustingthe temperature control element between the activated state and thedeactivated state during each of a first plurality of time periods, thelogic further configured to monitor usage of the temperature controlelement by determining an amount of time that the temperature controlelement is in the activated state during each of the first plurality oftime periods based on a time value indicated by the clock, and the logicfurther configured to maintain the temperature of the liquid at a secondtemperature threshold by adjusting the temperature control elementbetween the activated state and the deactivated state during asubsequent time period corresponding to one of the first plurality oftime periods, wherein the second temperature threshold is automaticallyselected based on the amount of time that the temperature controlelement was determined to be in the activated state during the one ofthe first plurality of time periods corresponding to the subsequent timeperiod.
 2. The system of claim 1, wherein the temperature controlelement comprises a heating element.
 3. The system of claim 1, whereinthe logic is further configured to activate and deactivate thetemperature control element during the first plurality of time periodsbased on the first temperature threshold and a third temperaturethreshold, thereby providing a first activation hysteresis for thetemperature control element between the first and third temperaturethresholds, the logic further configured to activate and deactivate thetemperature control element during the subsequent time period based onthe second temperature threshold and a fourth temperature thresholdthereby providing a second activation hysteresis for the temperaturecontrol element between the second and fourth temperature thresholds,wherein a difference between the first and third temperature thresholdsis different than a difference between the second and fourth temperaturethresholds.
 4. The system of claim 1, wherein the logic is furtherconfigured to automatically generate data indicative of a usage historyof the temperature control element, wherein the data defines a schedule,the schedule having a plurality of time slots, each time slot associatedwith a respective temperature threshold by the data depending on a totalamount of time that the temperature control element is activated duringa corresponding time period, and wherein the logic is configured toselect the second threshold by identifying a time slot corresponding tothe subsequent time period and determining the respective temperaturethreshold associated with the time slot corresponding to the subsequenttime period.
 5. A system, comprising: a tank; a temperature sensorconfigured to detect a temperature of a liquid residing within the tank;a temperature control element coupled to the tank, the temperaturecontrol element having an activated state and a deactivated state; acomputer-readable memory storing data indicative of a usage history ofthe temperature control element; and logic configured to maintain thetemperature of the liquid residing within the tank at a threshold byadjusting the temperature control element between the activated stateand the deactivated state, the logic further configured to track anamount of time that the temperature control element is in the activatedstate during each of a plurality of reoccurring time periods in order toautomatically define the data indicative of the usage history, and thelogic further configured to automatically select the threshold duringone of the plurality of reoccurring time periods based upon previouslystored data indicative of the usage history during one or more previousoccurrences of the reoccurring time period.
 6. The system of claim 5,wherein the logic is configured to ensure that the temperature controlelement is periodically controlled such that an amount of bacteriawithin the tank remains within a desired range.
 7. The system of claim5, wherein the logic is configured to control the temperature controlelement such that the temperature control element has a first activationhysteresis between a first temperature threshold and a secondtemperature threshold, wherein the logic is configured to place thetemperature control element in the activated state when a sensedtemperature falls below the first temperature threshold and to place thetemperature control element in the deactivate state when the sensedtemperature exceeds the second temperature threshold.
 8. The system ofclaim 7, wherein the logic is configured to transition the temperaturecontrol element from the first activation hysteresis to a secondactivation hysteresis when the usage history data indicates that a timeperiod of high usage is imminent, wherein during the second activationhysteresis, the logic configured to place the temperature controlelement in the activated state when the sensed temperature falls below athird temperature threshold and to place the temperature control elementin the deactivated state when the sensed temperature exceeds a fourthtemperature threshold, and wherein the difference between the first andsecond temperature thresholds is greater than the difference between thethird and fourth temperature thresholds.
 9. A method comprising thesteps of: selectively activating a temperature control element tomaintain a temperature of a liquid within a tank within a first desiredtemperature range during one of a first plurality of time periods;determining the amount of time that the temperature control element isactivated during the one of the first plurality of time periods;automatically selecting a second temperature range based on the amountof time that temperature control element is determined to be activatedduring the one of the first plurality of time periods; measuring atemperature of the liquid during a subsequent time period correspondingto the one of the first plurality of time periods; comparing a valueindicative of the measured temperature to the second temperature range;and selectively activating the temperature control element to maintainthe temperature of the liquid within the second temperature range duringthe subsequent time period.
 10. The method of claim 9, furthercomprising the steps of: automatically defining data indicative of ausage history of the temperature control element based on the determinedamount of time that the temperature control element is activated duringeach of the first plurality of time periods; and automatically selectingdifferent temperature ranges for the temperature control element basedon the data.
 11. The method of claim 9, further comprising the steps of:defining a schedule based on the determined amount of time that thetemperature control element is activated during each of the firstplurality of time periods, the schedule having a plurality of time slotseach corresponding to a different time period of the first plurality oftime periods; and automatically associating each of the time slots inthe schedule with a respective temperature range.
 12. A method,comprising the steps of: detecting changes in temperature of a liquidwithin a tank over time; activating a temperature control element basedon the changes in temperature; tracking activation states of thetemperature control element; defining a schedule of classified timeslots, each of the time slots classified based on an amount of time thatthe temperature control element is determined to be activated, based onthe tracking step, during a time period corresponding to the respectivetime slot; automatically selecting a temperature threshold based on theschedule of the classified time slots; and controlling the temperaturecontrol element based on the selected temperature threshold.
 13. Themethod of claim 12, further comprising the steps of: associating a timeperiod with one of the classified time slots; selecting, for theassociated time period, a temperature threshold based on a total amountof time that the temperature control element is determined, based on thetracking step, to be activated for the one classified time slot;comparing a sensed temperature to the threshold selected during the timeperiod; and controlling the temperature control element based on thecomparing step.
 14. The system of claim 1, wherein the logic isconfigured to define a schedule of expected usage for the temperaturecontrol element based on a usage history of the temperature controlelement, the schedule having predefined time slots, wherein one of thetime slots corresponds to the subsequent time period, and wherein thelogic is configured to classify the one time slot based on the amount oftime that the temperature control element is determined, by the logic,to be in the activated state during the one of the first plurality oftime periods corresponding to the subsequent time period.
 15. The systemof claim 14, wherein the logic is configured to determine an amount oftime that the temperature control element is in the activated stateduring the subsequent time period and to determine whether the one timeslot has been misclassified based on the amount of time that thetemperature control element is in the activated state during thesubsequent time period, and wherein the logic is configured to change aclassification of the one time slot based on a determination that theone time slot has been misclassified.
 16. The system of claim 5, whereinthe logic is configured to define a schedule of expected usage for thetemperature control element based on the data, the schedule havingpredefined time slots, and wherein the logic is configured to classifythe time slots based on the data.
 17. The system of claim 16, whereinthe logic is configured to determine whether one of the time slots hasbeen misclassified based on the activation states monitored by the logicduring one of the occurrences of the reoccurring time periodcorresponding to the one time slot, and wherein the logic is configuredto change a classification of the one time slot based on a determinationthat the one time slot has been misclassified.
 18. The method of claim12, further comprising the steps of: classifying one of the time slotsbased on the tracking step for activation states occurring during afirst time period corresponding to the one time slot; selecting atemperature threshold for controlling the temperature control elementduring a second time period corresponding to the one time slot;determining whether the one time slot has been misclassified based onthe tracking step for activation states occurring during the second timeperiod; and updating a classification for the one time slot based on thedetermining step.